I don't see why the game can't just detect that the player has disconnected, pause the leve, and then pick up right where the player left off. That way they'll still only be able to do the leve once per reset.