In it's current state, there's no reason animation lock is handled by the server at all. Even if they fixed the current system (say by updating the animation lock duration after receiving it from the server rather than resetting the timer), all the server does is acts as a database for the animation lock durations for each skill, which is completely unnecessary. If animation lock was handled completely client side, that would fix the ping issues and any inconsistencies in animation locks caused by delays in server response.

This wouldn't make cheating any easier either. There's already no server validation, seeing as there exists tools that allows for triple weaving. Right now, all the server does is tells the client how long the animation lock should be, it doesn't care how fast the client actually uses abilities. Their current approach somehow combines the downsides of both client side (easy to exploit) and server side (latency) solutions.