2795b2ab9f
The orphan-reap sweep (_reap_unsupervised_gateway_orphans) must not kill a gateway that Windows Task Scheduler is actively managing. The existing services.exe parent-chain backstop fails open: when the Task-launched conhost bootstrap has already exited, Windows does not reparent the gateway, the chain breaks, and the supervised gateway is treated as an orphan. The reaper then writes the planned-stop marker, the gateway exits cleanly with code 0, and the scheduler never restarts it (RestartCount only fires on non-zero exit) — silently killing A2A/messaging on every desktop-app launch. Querying the task's own state is the authoritative signal and closes the gap without depending on process ancestry: if HermesGateway is Running, skip the reap entirely. Uses PowerShell Get-ScheduledTask (English State enum, locale-stable) rather than schtasks (localized output + codepage mangling).