ahora entiendo el asunto, el problema lo tienes en la siguiente linea.
Código:
var textoContenidoMensaje = document.createTextNode(textoConSaltosDeLinea);
un textnode es de tipo CDATA. es decir, los PCDATA son contenidos que el analizador HTML interpreta pero los CDATA el analizador los considera como tal. tienes dos opciones, si usas
innerHTML no tendras este problema, simplemente agregas el valor tal cual lo tienes y el navegador analiza el contenido. esa es la opcion sencilla. la opcion mas complicada, en el sentido de que requiere mas lineas, es dividir la cadena en multiples elementos con
split y vas creando multiples elementos P y textnodes.