I posted this as a question a few weeks ago, but got no response:
I figured I was just doing something wrong, so I switched off to working on other parts of the project. Having come back to it, I'm now fairly certain it's a bug. Running an equals check always returns true if it happens as part of a Custom Event. See the above link for a detailed breakdown. I did a little further experimentation and noticed that swapping out the Custom Event for an update makes the above macro work fine (although, obviously, erratic, since it tries to fire every frame then).
I really need this to work properly for my current project, and it really seems like I've explored every possible option. Super frustrating, so hopefully it can be fixed (or I'm a dunce and am still missing something I did wrong).
Customer support service by UserEcho