EDIT: Don't know if that would reduce lag, but maybe?
In theory this would be the perfect solution, and (also in theory) a gazillion times faster than the solution I had (breaking the huge map down into dozens of smaller ones and setting each Transfer Player event manually, rather than by using variables).
I say "in theory" only because I'm wary of how this script treats regions like events, and the amount of them I'd need might still cause some sluggishness.