Es altamente probable que req2 y req sean el mismo objeto xmlhttprequest y que al poner el alert() haces que se termine de ejecutar la petición uno y empieze la petición dos.
Revisa tu función newXMLHttpRequest, es probable que no cree una nueva instancia del objeto xmlhttprequest si no que te devuelva uno ya en uso.
Saludos