Replaces the Phase-2 log-and-return stub with a real session construction. P2 is always null for Bot (bridge contract), so no WaitingRoom flow needed — single real WS, Phase-1 WhenAll-everything RunAsync semantics work because NoOp.RunAsync completes immediately. Integration test follows in the next task. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>