The main session and subagents share the same model backend; when that
backend serializes requests (cloud rate limits or a local server), subagent
streams queue the main chat. Adds two config knobs:
- agent_concurrency (default 3): a semaphore in AgentTree.start caps how many
subagent sessions stream simultaneously (slot is released on completion,
timeout, or setup error so failures cannot deadlock the queue).
- subagent_model (optional): routes spawned agents to a different model or
backend, e.g. ollama/gemma4:e4b, so subagents never contend with the main
session at all. Wired through the spawn tool, the main-session tools, and
the per-agent runtime tools.
Documents both in .hypothesis-machine.example.yaml and adds a concurrency-cap
test (43 tests passing, tsc clean).