All five are thin: inject, goAsync, make one call into the engine, finish in a finally. Anything resembling a decision belongs in the engine where it can be tested without a device. TIME_SET and TIMEZONE_CHANGED both mean the same thing to the engine — every resolved instant is now suspect — so both re-resolve from scratch rather than trying to patch the registrations they already made. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>