Short version is that the listener event needs to be "parallel processing", meaning that it happens in the background concurrent with other things instead of stopping the game for a split second every time it checks to see if the player has pressed the party switch key. But the actual party switch script needed to be "autorun", meaning it stops anything else from happening while it is in action.
So the solution was to "split the baby in half". The parallel processing listener event now sets a switch on, and the separate autorun event executes as soon as it notices the switch is on, executes the party switch, then turns the switch back off again. As coded, there's still a remote possibility of a player with absurd reflexes or terrible luck managing to get the warp tile event to fire in the milliseconds between the switch being turned on and the autorun event noticing it. So I'm gonna add code to kill the warp tile events if the switch is on. (And do something special with the door to the IK Castle. I'll add a note when the new build is up.
As to the warp maze/split party idea, there's a workaround if needed. At the conclusion of the party switch event, the code can check whether the party being switched to is currently standing on a warp tile, and make the necessary transfer player command if so. Tedious to code, but doable.