Under the hood
New retry timing and stale-session detection added to background session failure reporting
What
The background runner's failure-reporting path, covering runner:session and runner:stuck logging, gained new timing constants (500ms, 1000ms, 2000ms, and 3000ms) and an abort helper. These are used when retrying a failed attempt to post a failure result, and to detect when another runner has already taken over a session, logged as a "stale epoch" rejection.
Why
This makes background session failure handling more robust: retries are now timed explicitly, and a runner can tell when it's no longer the current owner of a session instead of continuing to report against it.