sleepwhile (condition) { await step.do(...) } will block on each await before it iterates.

waiting state (following your example, sleeping for 30 days), it does not count towards the concurrent invocation limit - only instances with a running state will count towards the limitthrow new NonRetryableError("File too big!")