WsState: "connecting" | "open" | "closed" | "error" | "reconnecting"

Socket lifecycle reported by onState.

'open' means authenticated and carrying traffic, not merely TCP-connected: the window between transport open and the auth acknowledgement still reads as 'connecting', because nothing can be sent in it.