Hi @Allen Xu_MSFT - I did look at that post and I know Laura does some pretty good stuff. For what I was after I thought it just looked like too much work.
What I did do in the end was in InfoPath form that submits the list items, I added an Action Rule to the Submit button to "Set Field Value" of a Text Column to "max(ID)+1 and Queried this Data Connection of the List.
Then in the workflow, I added an Action of "IF Current Item ID=MaxID (from above), run the Loop on this item. Seemed to the trick.
Thanks for pointing me in the right direction though!