AFAIK the scripts of NPC only checks if you intiated the battle or not and once the server crashes, script doesn't rollback so it thinks you dc'ed in between the battle, so its related to server stability (tho I might be entirely wrong).
This is correct. The NPC will initiate its cooldown timer once you have started the battle. Wether you lose, dc or win it will still count. Player progress is different, it can stretch between a certain timeframe within the server to the point where the server has lost communication with your client or a certain amount of the progress was deleted prior to crash, NPC checks are instant.