You'll probably find that it works fine with just one instance of the enemy. When you add multiple enemies this starts causing problems because it requires a different kind of picking logic and the trigger once events also cause some confusion, you can't just say 'enemy' you have to specify which enemy.
You can try 'for each enemy' to see if that works but even this can become buggy if you have a lot of complexity to the enemy patterns, I prefer a more solid way where I use functions, pass the instance UID through the function so I know I am applying it to that enemy. I had logic similar to yours making use of states and timers, skeletons that would charge into a wall, crash and then get up and continue charging, I had many working in one room with no problems using my method.