Factored WaitableEvent WAIT() API into Wait () and WaitUntil()