I believe you have already considered doing that the other way around and teleporting locations instead of the character?
Here’s another thought: what if you create two same locations one above the other, and when a character walks along the corridor, you just move the corridor itself up and down; if a corridor is long enough it will move quite slowly so the player won’t notice anything.
I don’t really know how those things were implemented in Antichamber and The Stanley Parable, for instance, just something that came to my mind.