Didn't got what you mean...i'll try to explain better my app flow during active timer.
When the timer is active and ambient mode is interactive, the onTick / onFinish functions of timer tells the VM to update the uistate.
When the app is paused during interactive mode or if the watch switches to ambient mode, i do a timer.cancel(), enable the background alert (setExactAndWhileIdle bla bla method :D) and the ongoing notification with the pending intent of MainActivity.
While on interactive mode, the switching between a timer and the next is, as i wrote before, handled by compose + viewmodel, but during background usage (including ambient mode), is all up to broadcast receiver (that saves the info about the current active timer, to restore it when the user resume the app throught the icon, recents or ongoing notification). When a timer expired during ambient mode, i have no clue how to recompose the timer view with the next timer, because " i'm " on broadcast receiver (it's not guaranteed that the app is on foreground during ambient mode, expecially on wear os 5)...of course a wrist rotation can restore the app state (and i handle this), but i'm talking about an case in which the user uses AoD all the time, and i had to refresh the view with the next timer, while on Ambient...i hope to have been more clearer :P (it's a complex flow, i know)