Hola,
Si envias el mail en formato HTML, debes hacer los saltos con <br>. Para los tabuladores es mas dificil. O poner el mensaje entre tags <pre> </pre> que creo que hacen que el \n y el \t se interpreten correctamente.
El limite de 30 segundos es el limite que tiene PHP para ejecutar un script. Puedes modificar su valor en el php.ini (max_execution_time, si no me equivoco) o bien dentro del script con
set_time_limit(). De esta ultima forma solo modificas el valor para ese script.
Suerte.