You can get an opaque string representing the executing instance of a specific macro instance - that is, each time a macro starts executing, that is a new instance (which also corresponds to a new set of Instance Variables) - by using the ExecutingInstance token.
If you squirrel that away somewhere, then another macro can use it to interact with that specific instance. In particular it can use the Cancel a Specific Macro action to cancel it.
For example:
Global Macro Group Macros.kmmacros (3.0 KB)

