Hola:
El ejemplo parece estar bien (no lo chequeé, pero la parte teórica está bien), yo suelo hacer algo parecido, pero en vez de una cadena para el mensaje uso un array... vacío al principio y si termina vacío pasa la validación... en el mensaje es donde mejoramos, ya que con join de los arrays evitamos el último retorno de carro... y los nuevos mensajes los añadimos con push...
¿Cuál es la pregunta
![Pensando](http://static.forosdelweb.com/fdwtheme/images/smilies/scratchchin.gif)
?
Saludos