@Dschoonmaker said:
The problem, though, is that everything freezes until the shaders are compiled. Nothing will run until all the shaders on the screen are compiled.
This is expected. With the workaround mentioned above, you can at least control when the freeze occurs, which is the most important thing. The alternative would be to render a partially broken scene while shaders are compiling (which is what some games do, especially some console emulators out there). I'm not sure if it's exactly better :)
That said, Godot 4.0 will be able to cache shaders to avoid freezes during gameplay.