I'm still struggling with this problem. After a lot of debugging and asking questions on StackOverflow (http://stackoverflow.com/questions/9202685/continuous-monitoring-of-data-using-backgroundworker-c
), I'm pretty sure that the temperature sensor event handlers are what's stalling my background worker, if I write out to the Console I see that they coincide exactly with the gaps in the stopwatch.
So, my guess is that even though the Phidgets events are called on other threads they're still interrupting my execution far more than I expected. If I can't turn down the sensitivity of the temp sensor then I might just have to remove it from my project.