Controller calls M2 (program end) after probing

The controller calls M2 (program end) after running a probe cycle (M6 command executed during a tool change) and I think is causing undesirable behavior with user variables I had declared (not 100% sure here but the issue happens after M6 probe cycle)

Before I go digging deeper is there a necessary reason that M2 is called after the probe cycle runs?