I was giving your problem some thought and an action I've never actually used came to mind, but might work for you here. It's the Parallel Split action. Here are some ideas on how to implement it:
You have a helper entity you mentioned be a type of array of users, with a variable to track the order. You could technically do this with the Administration.Account entity if you wanted by adding a new 'Order' variable to the Account entity. The other part of this is adding some way of tracking the number of responses (Approvals or Rejections) so you can know when to continue. You can do this by adding a new variable to your workflow reference entity, something like 'TotalResponses'
The workflow itself would then go something like:
1. Start with a parallel split action, with one split for every user in your array
2. Call a User Task option on each split for a specific user, you can determine this and pick them from the array by the order number mentioned above. Parallel split one would correspond to the person with order number one and so on.
3. Their user task completions would do what need to based on business logic, but also increment the 'TotalResponses' variable by one
4. Finally after the parallel split converges back to one path you'd call a microflow and check to see if the TotalResponses variable equals the total number of users in the array. If it does continue on with the rest of your business logic, and if not then don't do anything.
Hope this helps. If you ever want to chat about this further feel free to reach out.