wakeEndpoint reads RequestState flags under _mutex from lease-releasing
threads, which exposed two unlocked writers:
- commitAdmitted's delayed-open branch stored the admission/openSlot into
the still-enqueued state and then reset them via releaseAdmission()
outside _mutex, racing with claimFront/wakeEndpoint reads of
state->admission (torn std::optional read). The lease/reservation now
stay in the local verdict and are released after the unlock; the queued
front's state->admission is never mutated unlocked. Behavior is
unchanged (a delayed front always ended with an empty admission).
- scheduleOpenRetry cleared openRetryScheduled without the lock; now
cleared under _mutex, mirroring the wakeScheduled fix.
Also register test_broker_rechecks_scheduler_after_delayed_open_slot in
__main__ (it was defined but never called, so its assertions never ran)
and update it plus the open-scheduler test to the new release path.