fix: MCP WebSocket mutex deadlock + Processing... display
- Fix mutex deadlock in MCP bridge that blocked new connections:
- on_connection_message: release mutex before forward_to_mcp()
(process startup can take 3+ seconds)
- on_connection_closed: release mutex before destroying state
(subprocess destructor joins thread)
- Fix "Processing..." appearing for all messages instead of just
the one being generated (use !message.timings check)
- Reduce WebSocket socket timeout from 30s to 5s for faster
disconnect detection
- Add MCP WebSocket test script (mcp-ws-test.mjs)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>