`retrying()` function is unhandy
retrying() takes options as a first argument. It is almost never needed non-default. As a result, nearly all calls of retrying() are going to start with {}. The options must go last and be fully optional. Like it is done in test_run:wait_cond().
Another problem is that retrying() forces to raise an error instead of just returning nil/false. Usually an error is not thrown, and that forces to add assert()/error() which look ugly in a simple return value == expected expression. Which is almost always the case for retrying()/wait_cond().
Another problem is that retrying() has extra small timeout - 5 secs is not enough. It surely will produce flaky tests in CI jobs.
We can write a new helper without all these flaws. The function's name should be a verb, not gerund: do (what, how).
function helpers.retry(fn, config, ...)