spec(slice-4): barge-in / VAD-driven playout kill on dedicated media thread
Spearhead step 4 of 6. The FOB reflex loop: on brain speech_started
advisory, kill playout from the core-authoritative buffer; resume on
first fresh audio_out post-barge. Graduates the 20ms media loop off
the tokio pool onto a dedicated std::thread (ARCHITECTURE.md mandate,
deferred from slice-1 loop_driver.rs:18-23). Reflex<P: AudioPipe>
wrapper in rutster-media (FOB) decorates the pipe — loop_driver.rs +
rtc_session.rs stay byte-identical (the §8.5 #6 seam gate, restated).
Decisions (brainstorming 2026-07-01):
- Trigger: advisory-only (brain speech_started/stopped); local VAD deferred
- Resume: first fresh audio_out; SpeechStopped observational only
- Thread: single dedicated std::thread; per-session/threadpool deferred
- Approach C: B's thread model + reflex.rs module (per user selection)
Out-of-scope (§1.2): local VAD, per-session threads, min-mute floor,
brain-side input_audio_buffer.interrupt, TLS, authn, spend cap.
Depends on: slice-1 (media loop + seam), slice-2 (tap + playout buffer),
slice-3 (brain + speech_started/stopped advisory, S4 turn-ownership lock).