Actually, I've got a followup question: The github issue mentioned that different threads can't share cached shaders, so does this mean that they also can't be shared across scenes instanced in different viewports (since I guess each viewport has its own rendering thread). I tried a solution similar to the video but with the change that the materials were being drawn to a viewport inside a viewportcontainer, but still had the stutter when adding the scene that used them to a different viewport (even when they were clearly already visible on screen).
So I wanted to clarify if they have to be cached for each viewport individually and you can't use that kind of trickery to get around it: You've got to put them in the actual viewport you want them rendered on in the end, right?