Waits until a function returns a non-null value (async).
public Task<T> UntilNotNullAsync<T>(Func<Task<T?>> func, string? message = null) where T : class
The async function to evaluate.
Optional message for timeout exception.