This test was using Create without running it as a job.
I was just going to update my branch that has the job code, but I don't know if it would make any difference. If I put my check for the queue before I kick off the job, then its in the same situation as the above code - it will run before the sync device gets going. If I put my check for the queue within the job, well then it would be using the device itself and things get a bit more confusing. But I could be wrong...
Oh, and in my job code I use this call, not a subclass of DeviceJob directly (mostly because I just copied from another plugin...)
Code:
job = self.gui.job_manager.run_job(
self.Dispatcher(self._create_collections_completed), func, args=args,
description=desc)