Magnum, I totally understand all your points as I have written a fair number of assembly language interfaces wherein flags are buried in bytes, etc. Please notice that I did not say everything had to be on a full byte boundary, just something as dynamic as a time-keeping component should have it’s own little chunk. Besides 6 bits is not going to bring down the kingdom. Look at it this way: in the code the 10 bits that make up the timer have to extracted from the byte (word, whatever) and placed in a work area. Then the timer is incremented. The 10 bits are then masked back into the storage byte (word, ...). That takes 6 or more (minimum) machine level instructions. If the timer had it’s own byte (word, yadda-yadda), 3 instructions tops. So cramming a few flags into a word with the timer is slower as well as more complicated.
I know it seems that I’m picking nits a bit but I really do understand these things. IMHO this was a poor design decision.
Anyway, stay cool ... and Spring Forward tonight!
GPS Rollover Hamstrings New York City Wireless Network and a Handful of Other Systems
https://insidegnss.com/gps-rollover-hamstrings-new-york-city-wireless-network-and-a-handful-of-other-systems/