For fine control of event, I would go the AddIn route as suggested by @bradeneuropeArthur .
However, in both AddIn and iLogic rule, using boolean flags to decide on how to process the event will be my suggestion. You can turn on the flag anywhere in your code and then later, depending if a flag is on or not, react accordingly.
In your example of exiting in the middle of a rule:
At some point in one rule:
If condition is met Then SharedVariable("StopInMiddle") = True
And in the other rule:
Do something
If SharedVariable.Exists("StopInMiddle") Then
SharedVariable.Remove("StopInMiddle")
Exit Sub
End If
Do some more thing only if flag is off
The good thing with SharedVariable is that you can access them from any rules at any time. You don't have to pass argument around between rules. Similarly as how you would use global variables in an AddIn.
In my example here, I consider the flag to be used only for one thing. So the variable existence is enough to decide and I can remove the flag before going further. It doesn't need to be implemented in all the rules. Only the rule where you "decide" that you want to stop the other rule in the middle, and in the rule that you actually need to exit early. All the other rules will just ignore the shared variable.