This was partially solved with 5.0 (before was WAY WAY WAY worse) but still not 100%.
Most of the issues are server side because this game is scripted for china where 90% of the players have the same latency and the same cable infrastructure.
The problem appears here 3 times as big because we have not that situation, overall for xserver features.
To solve this they should actually script the battle mechanics in a way that when you or your enemy select a mystery the whole battle freezes until the opponent client side sends an input that says he received the icon popped up. Right now this is not how the system is scripted and is not scripted this way because if for any reason a client lag the battle may freeze even for 50/60 seconds per mystery per round.