Class that checks on a condition and - if condition doesn't match the expected result - waits until the result
matches the expected result, or a timeout occurs.
Fixed-delay & fixed-rate single thread scheduler
The scheduler supports varying scheduling intervals by asking the task
every time for its next preferred scheduling interval.