Essentially the problem is this. There's a delay between the start of the GCD and virtually all other events associated with spells. I suspect it wasn't that big before, as there's a WA patch note that mentions 20ms. Well, it's much bigger now... about 100-140ms, which is easily noticeable by the naked eye (this is with ~33 ms latency and 57 fps). This seems to be exclusive to the GCD, in that you can get information on the GCD as soon as the button is pressed, but everything else is on that delay. A good example is an on-gcd ability with it's own cooldown (I used Maim).
Code:
/dump GetSpellCooldown("Maim")
/use Maim
/dump GetSpellCooldown("Maim")
gives:
Code:
[05:48:26] Dump: value=GetSpellCooldown("Maim")
[05:48:26] [1]=0,
[05:48:26] [2]=0,
[05:48:26] [3]=1,
[05:48:26] [4]=1
[05:48:26] Dump: value=GetSpellCooldown("Maim")
[05:48:26] [1]=946024.142,
[05:48:26] [2]=1,
[05:48:26] [3]=1,
[05:48:26] [4]=1
even though its a 10 second cooldown. (the cdstart value matches GetTime() when run in the macro)
Is there any way I can get the information on what spell was cast earlier than the UNIT_SPELLCAST_SENT event? There are some actionbar events but those don't actually seem to return any useful information. Even if I could just get which button was pressed might be enough since the addon tracks ability keybinds.