Is there still a requirement to re-stabilize every 15 minutes (or some interval) in Leahi? It looks like Denali had such a requirement and it would jump back to STABILIZATION_2 state to do it. Since we don't have a STABILIZATION_2 state, we would need to jump back to STABILIZATION state instead.
It looks to me like the state machine (drain for example) will keep running so long as the flag is true. I would think it should set the flag to false when drain is done.
Do FP sensors have to be treated separately? I realize there needs to be separate messages as they will be coming from different Dialin classes, but can't we handle both messages with same function (assuming shared enum to index)?