Keep the background upload's stop reason and the earliest request

Commit

peyton-altyesterday
  • A flush records the actionable text it printed (the remote's rejection reason, the SSH or checkpoint-remote hint); the worker stores it with the run and the next push shows it, so a content-blocked checkpoint keeps its unblock URL instead of reading as "checkpoint ref push failed".
  • A request merged into a pending one keeps the earliest RequestedAt, so a failed trail create push does not discard an earlier push's upload.

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com Entire-Checkpoint: 01M6KXSZYJA8JYQ4NAJ9RKNJ7D