Pessoalmente, não usei a estrutura / biblioteca QP, devido à licença GPL. Naquela época, eu não achava que meu empregador estivesse pronto para pagar a quantia necessária para eu experimentar as máquinas de estado hierárquicas do HSM usando QP. Eu tive que implementar o meu próprio, semelhante ao QP, quando refatorava uma máquina de estado horrível que ocupava centenas de linhas de código como o exemplo de Joby, mas multiplicava-se por mil. Era uma dor terrível de se manter. Eu temia tentar adicionar algo novo a ele por medo de quebrar algo mais.
Redesenhei o código em um HSM que fazia muito mais sentido para mim, pessoalmente, sobre como o sistema deveria se comportar. Funcionou muito melhor do que eu poderia imaginar. Era muito mais fácil modificar e manter do que eu jamais poderia sonhar. Eu até tive que refazer grande parte da máquina de estado, devido a um comportamento inesperado no sistema. Foi muito mais fácil consertar a estrutura que eu havia criado e tenho certeza de que teria sido tão fácil no QP. A estrutura que construí tornou-se popular e se espalhou para outras máquinas de estado complexas dentro de nossa base de código.
Um amigo implementou a estrutura quântica usando Java em um robô que funcionou muito bem. Fazia parte do algoritmo de tomada de decisão do robô com base em determinadas entradas. Era um ajuste natural, dadas as decisões que ele precisava tomar com base no estado do robô.
O que eu entendo da beleza do QP é a capacidade de ter uma estrutura pronta para um projeto de máquina de estado que seja otimizado para o seu processador e não precise confiar nas ferramentas CASE que emitem código ineficiente. Porém, eu usaria o QP apenas se você tiver um conjunto complexo de máquinas de estado para implementar que descreva seu design.
Se tudo o que você tem é algo tão simples quanto o exemplo de Joby, faça como ele explicou. Mas se você encontrar sua máquina de estado crescendo e crescendo com todos os tipos de instruções "if else" envolvidas em diferentes condições ... talvez seja hora de tentar algo como QP para dividi-lo em HSMs.