Version Check threads should not sleep in the TaskEngine
The SoftwareVersionManager, if enabled, queries new clients for their software version. It does after a certain (configurable) amount of time has passed since the connected (bound their resource).
The implementation is based on a runnable that's added to the TaskEngine.
The existing implementation uses a runnable that will cause the executing thread to first sleep the desired amount of time, and then execute the version check. This causes a thread in the task engine to be used up, but will also cause it to do nothing.
The implementation should be improved, to avoid this. Instead, the task engine can be given a task that is to be executed after a certain amount of time has passed. This has a comparable effect, but won't cause the task to use up a thread before it actually starts doing something.