Cita: creo que es por que no le da tiempo a mandar la información antes de ir al href.
De hecho ese es el problema, no intentes que ejecute Javascript y además cargue el enlace, hacer dos cosas a la vez es problemático y no deberías hacerlo así.
Has una u otra cosa, no ambas.