I'm not really wild about the magic-number three-way-bool this uses now for AM/PM/24H state. It should be more like (to facilitate #3, among other things) a bool for which mode the clock is currently in (so it can move if it's changed), and the hour just straight-up externalized (or, you know, if #5 is done, keeping an external state for this to be pulled from would become superfluous and it could be omitted altogether).
I'm not really wild about the magic-number three-way-bool this uses now for AM/PM/24H state. It should be more like (to facilitate #3, among other things) a bool for which mode the clock is currently in (so it can move if it's changed), and the hour just straight-up externalized (or, you know, if #5 is done, keeping an external state for this to be pulled from would become superfluous and it could be omitted altogether).