bd63866253
reap_terminal_workers signalled any retained worker on the first tick after its run closed, but a healthy worker is still alive for a moment after kanban_complete / kanban_request_review returns (final assistant turn, session persistence), so slow-but-healthy workers were killed mid-finalisation and logged as terminal_worker_reaped. Reap only runs whose ended_at is at least TERMINAL_WORKER_REAP_GRACE_SECONDS (120 s, two default ticks) old; the fingerprint check is unchanged. Each row is now handled on its own so a signal or /proc failure on one run is logged and skips only that run. Tests: a just-closed run is not signalled and keeps its evidence, then is reaped once the grace has passed (red before); one raising row no longer aborts the sweep for the others (red before).