First thoughts are splitting it up.
For example I've made automatic (hold the trigger) weapons in the past where the trigger itself is it's own FSM which simply updates a bool. So you press, goes to next state which is bool on, when you stop presssing, goes back to first state and bool is flipped back to off. That's it. Then another FSM sits in a state where it gets the bool (from the first fsm) every frame, and then moves to the next state when the bool is true. This next state can do an everyframe or a loop because it also watches for the trigger bool to be false, at which points it exits back to the idle state, etc.
That action doesn't have an 'every frame' option though. I don't know how it works. Thing is about making it a loop, there is a limit of how many time it can repeat through the same state before it halts as an endless loop error. A way around this is to use a Wait time between cycles or Next Frame Event.