Cleanup implementation of CleanupThread
Simply use a timer and rely on QThread::exec's internal event loop to drive the cleanup rounds instead of using wait conditions for what boils down to pretty much the same.