Understood.
I'm not a big fan of arrays... but I have to admit that on small MCUs it might be a wiser choice.
Although in reality with the most modern MCUs I believe that there are more than enough resources to manage the dynamic allocation of the linked list, especially thinking about a global use of the StateMachine class so that the allocation is done only at firmware startup .
In any case, I'll try to think about it in the next few days, thanks for the food for thought!