Solved! Go to Solution.
The model with the iterator and subsequent downstream processing should sit in a model which ends with your collects tool. That whole model is then a sub-model in another model which has your sub-model feeding into a merge tool. You'll need to expose your inputs/outputs as parameters so you can link the final collects from the sub-model into the merge tool.
I believe the image on this page is misleading as the merge would be executed on every cycle of the iteration tool, which is crazy! Although the dotted line seems to hint that it's a submodel but thats not what is displaying...