Just a nit: you can move the if inside the context.become argument list.
In fact, that could be extracted as a function `nextWait(step)` or similar.