Commands and configuration writes (initialize, disarm, threshold change) can take minutes. With one shared connection a status poll waited behind them; now commands/config writes go through one kept-alive client and status/config reads through another, each with its own mutex and fixed timeouts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>