Hi all, I understand how frustrating this is and I am really sorry for the confusion the Merge node keeps causing. There is a number of feature requests around this, @ColinMacLeod just linked a request that would avoid having to use the Merge node in many cases: Dedicated "END IF" or "FI" node to merge TRUE and FALSE branches of IF node. Another suggestion for the Merge node itself is Merge node suggestion: add option to disable triggering of previous nodes.
You might want to leave your votes on these.
Personally, I’ve resorted to avoiding the Merge node and instead build sequential workflows in such cases, where the merge then happens in a Code node. An example would be available here: [Merge node] merging multiple outputs - #4 by MutedJam
Lastly, I know Jan is working on a way to avoid this behavior in the pull request mentioned in this thread: Merge (wait) seems broken - #3 by jan. This is at an early stage though and not fully tested yet. So there is no definitive ETA yet I am afraid.