We don't need to "pause" anything, and we never "go back" to anything. Each event is resolved in turn, completely, before moving on.
Perhaps this is just a bit of terminology difference, but this is exactly what happens.
When the condition for an ability is met, you stop the normal flow, do whatever that ability was, and then pick it back up. You look at it as inserting events, but isn't that pausing the normal flow (i.e. what would come next if the ability hadn't triggered) to resolve the ability, and then going back to that normal flow once it's done?
You're flattening it out, but as a software engineer, to me it's a subroutine. It's exactly the same thing.