purge_stale_done_notify_subs only matched status='done', so a task the circuit breaker parked in 'blocked' kept its notify-sub rows forever on boards that never archive. Widen the predicate to done OR blocked while keeping the existing age clause; backlog/ready cards are idle, not abandoned, and stay exempt (test_gc_spares_reopened_task_even_when_old). Watcher comment/log and docs updated to say done/blocked. Closes #100955 Co-authored-by: itsflownium <itsflownium@users.noreply.github.com>