fab9225a78
The 1s ticker's own ExpireLeases call almost always won the race against the coordinator's 30s Monitor loop, so the coordinator's ExpireLeases saw nothing left to expire and never reached its session-kill path — silently orphaning herdr panes past their lease TTL whenever a coordinator is configured. AUDIT.md called this "harmless" on the assumption CAS merely picked a winner; the real effect is the pane-kill side effect never firing. Now the ticker defers reclaim entirely to the coordinator when one exists, keeping only AssignPending as a periodic retry. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W1rkJ2hBMybnJctPbcy4tT