In this issue I raised :
the solution has been presented that you must manually attach() and detach() the thread when created from GDScript (and it doesn't work from C# at present).
Thus the example solution by neikeq in the issue above is :
t = Thread.new()
Which resolves my issue perfectly.
Edit: one final wrinkle is that I've found it won't work unless you're passing at least one parameter to the Thread.start()ed GDScript method, even if it's only a dummy. So the above example will need t.start(self, "threadcallback","dummy") and then func threadcallback(dummy):