Anche se sembra "grossolana" (e concordo che lo è da un punto di vista "generale") in realtà non lo è poi così tanto, nel senso che è tale in una visione globale di soluzioni tecniche, ma se occorre sfruttare solo le tecnologie indicate in pratica è un metodo efficace di gestire il passaggio dei dati sfruttando in pratica la capacità dei browser di gestire pagine "multiple"... inoltre il frame io lo creerei "al volo" via javascript e non inserendolo direttamente nell'HTML... così a occhio non mi pare si possa fare altro.

So di alcune soluzioni che usano i socket in JavaScript, ma si tratta in realtà di una soluzione "virtuale" perchè in realtà sfrutta un piccolo "swf" come messaggero... a quel punto meglio creare un iframe di servizio. Io proverei... per ora non mi viene in mente altro.