Partly standardized SemaphoreStep implementation.
The logical continuation would be to use StepExecution.applyAll.
Using SemaphoreStep to simplify WorkflowTest.env.