I find it quite annoying how AOEs disappear way before the actual attack hits and you don't really know if you made it out of one in time until you actually take damage. Why not just have the AOE stay up until the attack lands and if you're in it then, you take damage?
Literally the whole game works like this, it's just most obvious with AOEs.
Ever have a tank swear up, down, left, and right that they had a CD up but they died anyway?
Ever had a healer bemoan Benedictioning their own dead body?
Ever moved towards the end of a castbar and had the cast complete anyway, even though you were moving and it should have canceled?
The game has a lot of latency stuff going on, and part of the whole thing is that it 'locks in' damage and effects somewhere in the very tail end of cast bars. That means there's a short window at the end of the cast where nothing you do matters, because the game has already calculated what's going to happen next. While you think you moved early, as far as the server is concerned you moved after it completed the mechanic and the order you see it play out on your screen is secondary.
Over time you get used to it and learn how to make it work for you. It's dumb, but you learn when you can run into something that should be deadly because by the time the server realizes you're there the window is over. Slide casting (abusing that section of the cast bar between the server locking in that you've cast a thing and your client completing the cast) is an important part of caster mobility. You accept that you'll get hit by things and leave a body on the other side of the room;
It's not great, but it's deeply baked into the game's cores systems at this point and I'm guessing would be an epic struggle for them to remove. Instead they just say the game is supposed to be playable at 250ms ping and you can lump all the latency weirdness into that.