À la rigueur tu peut ajouter un flush(), pour forcer l'affichage du bouton.
Il faudra aussi que tu trouve la config dans php.ini pour que la page s'arrête quand l'internaute coupe la connexion (dsl, je ne me souviens plus de son nom). Et ajouter une fonction de sortie de script php (``exit`` quelquechose).
Ça fonctionnera avec la plupart des navigateurs, mais ça reste un peu crade comme solution.
Plus élaboré: tu lance un script PHP en commande shell qui fait la mise à jour, tu stocke le PID dans une BDD ou un fichier, puis tu envoye un signal au processus pour le tuer. Idem, redéfinir une fonction de sortie.