- daemon_net: close the client transport on context cancellation so the
per-connection Recv loop unblocks; otherwise wg.Wait() in the accept loop
hung on a still-connected client and the daemon never stopped.
- protocol: guard ConnTransport.Send with a mutex so the subscriber pump and
command handlers can push frames concurrently without racing the bufio.Writer.
Fixes TestDaemonDetachReattachPreservesProcess (now passes under -race).