Pending async-delegation completions were replayed only at process start
(restore_undelivered_completions from ProcessRegistry.__init__ and the gateway's
secondary-profile restore). A result persisted by a process that then died (a
desktop reload) sat at delivery_state='pending' until some process restarted.
The gateway async-delegation watcher and the TUI notification poller now sweep
each profile home they serve every 30s: abandoned in-flight rows are classified
by recover_abandoned_delegations, and terminal pending rows whose owner fails
the shared start-time liveness check, idle for 60s and not under a live claim,
are offered once to this process's completion queue. Delivery still goes
through claim_completion_delivery, so two processes offering the same row never
both deliver it. Rows past _MAX_DELIVERY_ATTEMPTS or the replay age converge to
dropped.
Fixes#97202