It seems like you always find the answer yourself after posting a question.
Thinking it might be an issue with static classes (which I think are truly evil) - I went to just using Win32 to start the thread:
MG::hndlSerialThread = CreateThread(NULL, 0, SerialProcessing, NULL, 0, 0);
That worked fine.