As far as I understood the problem is not related to the delay, is an animation problem. I was searching for a solution for my own, because I hate that behavior too. So here it is.
go to src/map/skill.c
Search for:
// Ashura Strike still has slide effect in GVG
if ((mbl == src || (!map_flag_gvg2(src->m) && !map[src->m].flag.battleground)) &&
unit_movepos(src, mbl->x + x, mbl->y + y, 1, 1)) {
Now replace
unit_movepos(src, mbl->x + x, mbl->y + y, 1, 1)
for
unit_walktoxy(src, mbl->x + x, mbl->y + y, 2)
The problem: unit_movepos() is a kind of teleport, not a walk. If you want, you can also remove the slide which gives a glitch that I also hate.
That was I found after comparing with eAthena code. also, if you think that the damage way before the movement, move, not copy paste, move
skill_attack(BF_WEAPON,src,src,bl,skill_id,skill_lv,tick,flag);
(it is around line 4404), just before:
// Ashura Strike still has slide effect in GVG
Why does it works like that now? I have not idea, but I hate it.