Somewhere here we should warn about the default timeout in the comments, because it's opaque that it might throw an exception.    I think it might make more sense to return an `AssertionResult` instead of throwing, but calls to these waitFor's will need to be wrapped with ASSERT_TRUE