Wäre es nicht besser, das Ganze als endlichen Automaten zu implementieren? Damit ist der Übergang zu einem neuen Zustand nicht nur von der Eingabe, sondern auch vom aktuellen Zustand abhängig (z.b. bei Submenues oder bei Deiner Rolladensteuerung wenn ein Endpunkt erreicht ist).
Siehe auch Endlicher Automat – Wikipedia
Eine entsprechende Lib gab / gibt es dafür auch schon: Arduino Playground - FiniteStateMachine Library