OnComponentEndOverlap fires when it should not

OnComponentEndOverlap is being triggered when the colliding object is still inside the collision box. Basically, I have an enemy robot which swings an axe at the player character. He is set up as follows:
A collision box is child to his capsule component. OnComponentBeginOverlap triggers his swing, and he should continue to swing every half-second until the player character leaves the collision box.
The problem comes in that even if you stand still inside the collision box, the EndOverlap is triggered (you can watch it ping, as it happens, in the event graph), leaving the robot just standing there in a non-aggressive state.

I tried moving the collision box to different parents, such as sockets on the skeleton or as a child of the skeletal mesh in general, but I get the same results.
Collision box is set to “overlap all dynamic”

I have tried Use CCD and Multi Body Overlap just in case it might do something, but get the same unfortunate result.

Furthermore, OnComponentEndOverlap can be triggered twice in this situation (once on its own, the second time when you actually do exit the collision box) BUT OnComponentBeginOverlap does not retrigger while you are standing inside the collision box.

Furthermore, OnComponentEndOverlap can be triggered twice in this situation (once on its own, the second time when you actually do exit the collision box) BUT OnComponentBeginOverlap does not retrigger while you are standing inside the collision box.