Queued rows are now QueuedMessageViewModel (Text + RemoveCommand); each shows a ✕ (Icon.WinClose) that calls RemoveQueuedInteractiveMessageAsync(taskId, text). The worker re-broadcasts the queue, rebuilding the strip without the removed message. Adds session.composer.unqueue (en/de).