Che sto sbagliando qualcosa è evidente
Il programma che ho scritto ha una pagina iniziale di richiesta di parametri di elaborazione (range di date, tipologia di dati, ecc..)
Poi ha un bottone di tipo submit da cliccare quando l'utente ha inserito i parametri:
<button name="btnavanti" id="btnavanti" type="submit" class="button"
title="Esegue elaborazione"
>
[img]/buttons/avanti.gif[/img]

quando viene richiesto il submit, viene eseguita la funzione elabora(), che ho già esposto precedentemente.
Questa funzione richiama un programma che ricevendo i parametri estrae dati da un database e ne popola un altro attribuendogli una chiave univoca per il reperimento.
Rende questa chiave al mio programma nel responseText e io la metto in un campo hidden della form e proseguo con il submit del programma indicato nell'action.
Questo secondo programma, riceve nel campo hidden la chiave che deve elaborare, estrae dal database i dati associati a questa chiave, prepara una form e la emette.

Se faccio la chiamata in modo asincrono, il programma prosegue a chiamare il programma successivo senza passargli la chiave da elaborare, perchè non la riceve finchè non ha terminato la chiamata.

Spero di essermi spiegata bene.
Ciao