Secondo me dovrebbe essere un problema legato al comportamento del browser, perché dal punto di vista del server due richieste in arrivo da due iframe diversi sono completamente slegate una dall'altra (la tua ipotesi sulle sessioni è campata in aria).
Hai detto che se lavori sul frame B mentre A è in esecuzione ti compare la clessidra. Dovresti provare a trovare un modo per capire se lo script sul server parte subito o se parte solo dopo la risposta dell'altro (ad esempio mettendo una insert su db come primissima operazione dello script, e andando subito a verificare quando compare la riga sul db). Se lo script parte solo alla fine, è come penso io, ed è il browser a trattenere la richiesta. Se invece parte subito, non so più cosa pensare