## Summary
- `HlsVideo`'s `MAX_RETRIES=10` (a 20s budget) was measured live to be too tight for an INTERACTIVE overlay source: sink's capturer needs a cold browser context + page load + GStreamer pipeline start + RTSP handshake before MediaMTX ever sees a publisher (measured `total_activation_s=17.50` in a real run) -- the player's last retry landed 0.3s before the source actually went ready, then gave up forever (`hls.destroy()` is permanent, no further attempts even once the stream exists moments later). Bumped to 30 retries (60s) for real headroom. A plain camera stream is near-instant by comparison so this only ever bit interactive overlays, but the budget is shared by every `HlsVideo` caller.
