Address all 6 findings from Codex review of 912d75bff:
- Exclude the resumed run from capacity checks (P2): reserveScheduledResume discounts
this occurrence's own started row (isOccurrenceStarted) so a self-active row (from a
transient pause-bookkeeping failure) doesn't push the global count over the cap and
block resuming the same occurrence.
- Preserve the lease marker while deleting (P2): markScheduleDeleting no longer unsets
leaseUntil/leaseBy, so a fire that already reserved a started row can prove
(holdsLease) it still owns the lease and roll back its own unposted row instead of
leaving a ghost.
- Treat a live lease as undrained (P2): eraseScheduleIfDrained also refuses to erase
while a LIVE lease is held (a worker claimed but hasn't reserved yet), so it can't
erase out from under a worker about to insert a reservation.
- Release own lease after owner-edit supersedes fire (P2): the superseded rollback path
now releaseLeaseByHolder(leaseBy) since advance() is token-fenced and no-ops after an
edit — otherwise the edited schedule / Run now reads 'already in progress' until TTL.
- Preserve early-abort jobs as aborted (P2): the createJob->liveness early abort uses
abortJob (stored 'aborted' -> reconcile 'interrupted') instead of completeJob, whose
preserved 'complete' the reconciler would map to 'success'.
- Show default weekly schedules as weekly (P3, client): describeCadence renders a
weekly cadence without daysOfWeek on the server's default weekly day instead of
falling through to the daily label.