fix: stabilize flaky channel tests with async reconciliation and task draining
- Run reconcile_deployments in a background task instead of blocking the
channel process, preventing assert_reply timeouts in slow environments
- Drain TaskSupervisor children in channel_case on_exit to prevent
sandbox teardown while tasks are still running
- Increase assert_reply timeouts from 100ms default to 1000ms
- Use wait_until_succeeds for garden deploy RPC in e2e test to handle
subscription sync race
sow-125
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>