I would use a singleton. A master that is persistent between scenes. So you can pass stuff to him when changing scenes, that you want to happen in the next scene.
When the player teleport you would go:
Master.next_player_loc = #where this door leaves him
As the Master beeing your singleton.
And when everything is loaded, for example the player, he emits a signal that the Master is listening.
Master script:
func _ready():
player.connect("ready", self, "realocate_player")
func realocate_player():
player.global_position = next_player_loc
This "nextplayerloc" was setted by the door when it was activated.
So in the function called by this signal you would realocate the player in the right place, note that if the camera has smoothness, and its loaded first, I think that the player may "teleport", and the camera will not. It will smooth its way to where you put the player.
I think there is some bugs here, for example, "nextplayerloc" needs firstly to have the starting position, as when you load the scene for the first time, you want him to appear there. And everytime that you move scenes you will need to be carefull to update this variable, as if you don't do it, he will appear at the last place you setted.