Your state machine looks much tidier now. I’m not in the position to tell if it is exactly doing what you’ve specified, but it looks better than before.
As far as your code goes, you code unnecessarily (and incorrectly!) the nested initial transition. Please check the other posting to this forum “Call to 0x0000 in QHsm_init”, which happened to “bubble up” quite recently. The point is that you actually code initial transition with Q_INIT_SIG _only_ if it is actually in the diagram. You don’t code it _at all_ if you don’t have it in the diagram. The same goes for entry and exit actions.
I still don’t like the fall-through in the entry action.