Block until fun.(state) returns truthy, then advance.
fun.(state)
@type t() :: %Caravela.Flow.Steps.WaitUntil{fun: (map() -> boolean())}