I was aware of the CR_FAN request, but, like you said, it's not locked in for 2.2.9, so I included it in my question anyway to see if there were any alternatives. It's kind of unfortunate, because P_PlayerTouchingSectorSpecial can be used to easily detect fan sectors. I'm using these for animation so it ends up looking a bit inconsistent in the end (though now that I think about it, the vanilla SP maps don't use fans at all, so...).
Giving MFE_SPRUNG to gas jets is not useful in my case, as I want gas jets to put the player into the same "floating" animation I'm using for fans, so it needs to be something specific to gas jets (unless there's a method to detect which object caused MFE_SPRUNG to be applied that I'm not aware of). I didn't want to use MobjCollide because I figured there probably was a better solution, but maybe not.