Execute a command over WebSocket, yielding raw message dicts.
Returns a tuple of (message_iterator, control). The control object provides send_kill() and send_input() methods for the CommandHandle.
The iterator yields dicts with a "type" field:
If on_stdout/on_stderr callbacks are provided, they are invoked as data arrives in addition to yielding the messages.