cancelVirtualTurn method
Cancel an in-flight virtual turn for conversationToken. Mirrors
_cancelOn but targets the shared live virtual conversation. Does NOT
take the mutex (it must interrupt a generation that already holds it).
No-op unless conversationToken owns the currently-live conversation —
otherwise one session's stopGeneration() would cancel another session's
in-flight generation (the single conversation is shared).
Implementation
void cancelVirtualTurn(Object conversationToken) {
if (_virtualActiveToken != conversationToken) return;
final conv = _virtualConv;
if (conv != null) _cancelOn(conv);
}