Hi,
you need to separate your logic into two fsm to avoid the infinite loop and send a global event when mouse wheel scrolls and when mouse wheel stop scrolling, don't send an event everyframe, that's not really a good practice imo.
Also, the other way around, is to have two states, where one checks if the mousewheel scrolls, and move to the second state, and in that second state, check if the mouse is NOT scrolling, which would transit back to the first state. This way you avoid infitie looping.
Does that make sense?
bye,
Jean