I have achieved, bare minimum functionality on my intrepid timer firmware, But all the major hurdles are dealt with.
Lots of work to do, especially finding a nice representation for the internal state machine. But it's getting there, and I'm pretty sure I have enough headroom in the firmware for the remaining logic I need.