Hi Craig,
first, the message from the non-MT VM, "Warning; callback failed to own the VM", indicates that a callback is coming in on other than the VM thread. Here's the non-MT implementation from sqVirtualMachine.c:
sqInt ownVM(sqInt threadIdAndFlags)
{
extern sqInt amInVMThread(void);
return amInVMThread() ? 0 : -1;
}
So with the normal VM any callbacks must come in on the thread that made a callout.