Hey again! So I tested my scene on Godot 3.4.4 (so the more recent version) - still, _draw() function is called twice.
So I tweaked my singleton to find what the culprit was, and indeed found it. I have this bit in my singleton:
The code above runs under _ready() (different node though). If I remove the lines above, then the _draw() function (for my Label node) is called once. If I keep them there, it is called twice.
So is it safe to assume that using the set_window_size() function makes all nodes in the scene have their _draw() function run again? I suppose to avoid the _draw() function from running more than it is expected to, the script that handles resolution should run in its own start-up room, and then when the resolution is set, we should move to the 'real' game rooms?
Right now I only have the one room I'm testing this all in. This is all new to me as I've just started working with Godot.