Breakpoint prevents Error

I have a behaviour tree, an actor and an animation. The behaviour tree goes to a task node “FireProjectile”, this node sets a bool “wants to fire” on the actor to true. The animation graph detects “wants to fire” is true in event tick and starts the firing animation by setting the local variable “start attack” to true. On frame three of the fire animation it calls a function on the actor to create the projectile. When it returns to the idle animation it sets “start attack” to false, and calls a method on the actor to set “wants to fire” to false. The behaviour tree task “FireProjectile” in event tick detects that wants to fire is set to false and ends with success.

When I run this the enemy fires once and then gets stuck in the FireProjectile node. If I put a breakpoint on the FinishExecute node however, the enemy will fire repeatedly as I expected. With the breakpoint pause after firing of course.

Why is this happening? Why does adding a breakpoint cause it to work correctly? Is there a better way of organising this? Is it possible for an actor to send a message to its currently executing task?

here is the behaviourTreeTask