The reachable gap is agent_holder=[None] during turn setup (run_turn_runner fills the holder later); a real AIAgent always has _last_activity_ts, so seconds_since_activity=None is not a state production produces. Replace the None-returning fake with a snapshot-raises fail-safe case and add the empty-holder test. Both are red against the pre-fallback watchdog loop.