func (w *Wait) WaitUntil(d time.Duration, onSuccess func(), onTimeout func())
This waits until Done() has been called or the specified duration has elapsed.
If Done() is called, then onSuccess is called.
If the duration elapses without Done() being called, then onTimeout is called.