Ciao, se la gif animata si fosse bloccata durante l'esecuzione di qualche JavaScript, ti avrei parlato più nel dettaglio del fatto che normalmente la gestione dei processi nei browser è single-threaded, con tutti gli annessi e connessi del caso.

Da ciò che hai indicato, però, la causa da ricercare è più semplice:
Ho una pagina con un pulsante che mi rimanda ad un'altra pagina che deve elaborare molti dati.
Ho pensato che al click del bottone questo sparisca facendo vedere una gif animata.
[...]
ma l'immagine si blocca fin quando su pagina2 non ha finito di elaborare i dati
E' più che altro una questione di logica: nel momento che il tuo browser va a caricare il nuovo documento, la pagina corrente viene "freezata" finché non viene mostrata la nuova pagina. Cioè, nel momento in cui il browser sta attendendo la risposta dal server, per l'apertura della nuova pagina, non solo le GIF animate si bloccano, ma presumibilmente non sarà consentita nessun'altra interazione su quella stessa pagina corrente.

In linea di massima il rendering delle GIF animate viene interrotto o per dare priorità alla gestione delle altre risorse in esecuzione.

Tuttavia questo comportamento è differente da browser a browser perché ciascuno di essi ha un proprio metodo di gestione dei processi.

Nella maggior parte dei casi una valida soluzione può essere quella di usare un'animazione CSS al posto di una GIF.
L'esecuzione del CSS infatti dovrebbe non interrompersi in questi casi.

Ad ogni modo, alcuni browser potrebbero comunque mostrare la pagina bianca dopo che è stata avviata l'apertura del nuovo documento, fintanto che questo non sia visualizzato nella pagina. In tal caso anche mostrare un'animazione sulla pagina potrebbe risultare totalmente inutile.

Ho risolto ugualmente processando i dati direttamente sulla prima pagina per poi passare alla seconda
invece A seconda dei casi potrebbe essere più "elegante" usare dei caricamenti asincroni, cioè attraverso chiamate AJAX, così da mantenere l'eventuale controllo sulla pagina stessa durante il caricamento degli altri contenuti... ma questo è già qualcosa di più elaborato e non so se sia una soluzione adatta nel tuo specifico caso.

Per il momento prova magari con un'animazione CSS e fai sapere.
Buon proseguimento.