Take this macro
/script SpellStopCasting(); CastSpellByName("Heal");
Press this macro, wait 1.5s for the global cooldown to pass and then press it again and you will abort the heal currently casting and immediately start to cast a new heal. Yay!
(If you are not a priest, any spell with a longer cast time than 1.5 seconds will do)
The only problem is that the client and/or server (I really do not know) cannot keep up and SpellStopCasting() or pressing escape will not work on the newly cast spell at all. It is as if the game has no clue that you are really casting, until the cast finishes and the heal lands. There seems to be no way to abort it other than moving.
My question is this. Is there any way to either:
a) Abort the spell that cannot be aborted via SpellStopCasting() or escape without moving/jumping?
b) Avoid the issue completely, without waiting with the new cast, so that the server/client doesn't miss the cast?
While I realize that the issue might well be unsolvable, I still thought I'd ask here where there are many players far more experienced with wow scripting then I am.