split Thread::WaitUntilDone() to that plus Thread::WaitForDoneUntil()