As a writer of embedded software I'm a big fan of state machines. I always thought they were underused in other domains, so it's good to see things like this.
Paraphrasing I-don't-know-who: State machines are not optional. The only difference is whether you're going to have an explicit one, or a crappy, accidental one.