(Suggestion) MobjStateChange and/or PlayerStateChange Lua hooks
I'm honestly surprised this isn't already a thing. Could take a tertiary argument for what changed state to run it on (i.e. passing S_POSS_RUN3 would run it when a mobj changes state to S_POSS_RUN3). Could also use a function arg for whether P_SetMobjStateNF is used.