Thanks for the contribution
Comitted in Rev450.
As for your question about the timer in the UI, GetActSpellCastTime is called from spells.cpp line 339, but on line 441, we send the client the unmodified cast time
Code:
begincast->cast_time = orgcasttime; // client calculates reduced time by itself
It may be that the client will only calculate the reduced cast time for focus effects, not AAs (it certainly doesn't show the reduced cast time when you right click on the spell and you have quick summoning).
If that is the case, we probably need to send the client the cast time reduced by any applicable AA effects, but not by focus items.