Hellos
Just to add some copper pieces to the pile, with regards stating intent, as opposed toggle intent.
The MQ2 command,
/mqpause or the shorter version,
/mqp will change the running state of a macro
(not plugin).
That is, using as given, if a macro is active it will pause it. If the macro is paused, it will resume it. Ok, thats it toggling the state. Macro running to paused, paused to running.
This can be overloaded with extra parameter, to give explicit intent, in which you state what want it to do.
i.e.
If it is just a toggle, and in mad rush, click hot button a couple of times; you will be right back where you were. running ->paused, paused to running.
By having your "panic" button to pause the macro, then no matter how many times you mash that button, it will go running ->paused; and stay paused, until you un-pause it by type the command in or use alternative button.
Some people are happy with state toggles.
I prefer to use the overload and explicitly state what I wish it to do.
Off the topic of main post; but thankfully,
KissAssist does that for common used features;
/camphere and
/chase.
The character I am driving dictates
( /bcg )the intent to camp at spot; two lines,
//chase off //camphere on
Likewise, to break camp and roam with the leader, broadcast again over two lines the reverse,
//camphere off //chase on
As you can see, i prefer absolute clarity on when press a hotkey, it does exactly what I expect it to - impact the state explicitly and not toggle.
Regards and Best Wishes