Well, as always, after posting a wall of text I've experimented more and solved the issue. It seems putting EVENT_SHOOT before EVENT_SCAN makes it work.

Yay.