The framedrop issue is sadly a very well known one in Godot. Its because materials with shaders are spawning in where the new shader needs to be compile. The framedrops should stop once you play through things once in stuff gets cached. One trick I often use to combat this, is to apply all the shaders I have to a set of tiny cubes that get spawned in at the start of the game. XR Tools actually has a node that helps with that.