Spends step if it is later than the last one spent. Returns whether it was — false is a replay, or a concurrent request that spent it first.
step
Future<bool> advanceTotpStep(String userId, int step);