The child-side reply slots for supervisor round-trips: a turn worker
sends ToolRequest/BudgetRequest frames up and blocks until the
control-reader thread delivers the matching ToolResult/BudgetGrant here,
matched by id. One mutex plus one condvar guards the whole map, and a
closed channel or a set cancel flag wakes every waiter with None so no
worker can outlive the supervisor that was going to answer it.