Reconnect to an existing command over WebSocket.
Returns a tuple of (message_iterator, control), same as run_ws_stream.
The iterator yields the server's started acknowledgement, then stdout,
stderr, exit, and error messages. That acknowledgement is the only evidence
a reattachment landed for a command producing no output, so it is forwarded
rather than dropped.
With the ring buffer reader server model, there is no replay/live phase distinction and no deduplication needed. The server reads from its ring buffer starting at the requested offsets and streams output from there. If the requested offset is older than the buffer's earliest data, the server sends from the earliest available offset.