Creates a new wait delegate which completes it's wait only if the specified condition returns true or if the specified timeout timespan elapses The delegate is only re-evaluated at the specified wait interval