Yeah, that's definitely a better solution.
Something is a bit fubar with auto wand cancellation- when you hit the wand key again, it doesn't appear to stop as 'suddenly' as spellstopcasting- jumping negates spellcasting for the time of the jump, and movement is a bit dicey too, there's a bit of leeway.
That last one looks promising Unchained, didn't think about looking for the castingbar!
Bad thing about something like that though Unchained, particularly as a mage (and in PvP), you can't 'close gaps' between spell casting by constantly mashing the next spell's button during the casting time of the current spell.
I'd recommend using a button very close to the wand spell and just assign it a macro:
ie. i'd use mouse4 for wanding, and mouse5 to stop casting/wanding.
I don't really know much about it, but I imagine it has something to do with hooking in the SpellStopCasting() function before casting a spell if the wand is active.
(I hope my code jargon was up to scratch and i didn't make a complete ditz of myself in that explanation :P)