Reorder persist/update in ApplyAsync, ReevaluateAsync, and ShelvingCheckAsync: SaveAsync is now called before the in-memory _alarms entry is advanced. A store failure therefore leaves both the persisted and in-memory views at the prior state rather than diverging, maintaining the invariant that startup recovery reflects actual persisted state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>