I thought I knew what the issue was, but trying to use _enter_tree and _ready in the correct order did not fix the problem.

It was suggested that it might be due to a camera setting, such as smoothing. Upon investigation, smoothing wasn’t turned on and turning it on makes it more obvious that the camera starts off at the default spawn position before moving to the correct position.

Trying to use reset_smoothing after setting the position also didn’t fix the problem, and it acts as if though smoothing wasn’t turned on, even if smoothing is turned on.