1) If the battle is clearly a stalemate, and neither side can win, the player who is aiming for victory in the game, or who will outlast the other, should retreat.
2) The issue of players abandoning the game could be resolved by implementing a logging system or a timeout feature.