ése es el detalle, el form2 se envía por medio de un iframe oculto, pero cuando llega a la parte de que se envía el primero la página se recarga, y una de las consecuencias de ello es que la petición HTTP que se esté efectuando en el iframe oculto no llegue a suceder por el GC del navegador, sé que es por una fracción de segundo, pero suele suceder, por lo cual te comenté un iframe para cada form.
tambien podrías olvidarte de los iframes y usar AJAX, al menos para enviar el form2 y luego de que tengas la respuesta HTTP OK después de enviar el 2, proceder a enviar el primero, o ambos juntos.
no le temas a AJAX que no muerde:
http://librosweb.es/ajax/index.html, y si usas jQuery te resultará una tontería implementarlo