I wasn't sure whether I should re-open the other ticket or start a new one, but since it is a problem with new code and I think the problem is pretty severe I figured I should open a new one.
The problem is that @last_ping is never cleared and the timers are not stopped when rbot is disconnected. The command to send a ping is set for 30 seconds and the command to disconnect is set to 10, so @last_ping won't get updated before it is checked and rbot will reconnect every 10 seconds. This is pretty bad, especially if it happens when you are not there to stop it.
It happened to me when the bot disconnected because of a missing %s in hello_X in the language file, but as far as I can tell it will happen no matter why rbot is disconnected.
I will attach my fix. It clears @last_ping in a paranoid amount of places and stops the ping/pong timers when rbot is disconnected since they are useless after that point anyway. (Stopping the timers isn't really necessary and doesn't fix the problem, but it doesn't hurt.)