Lösungsvorschlag, getestet.
Hier zur Demo statt sort nur ein einfaches Aufwärtszählen.
Knackpunkt ist, daß der Browser bei rechenintensiven Aufgaben die Klick-Ereignisse nicht abfragt, sondern wartet, bis die Berechnung zu Ende ist. Daher ist zwischendurch immer ein Timer zu setzen, der dem Browser dafür Luft gibt!
<form>
<input type=text name=ausgabe>
<input type=button value="STOPP!" onclick="stopp=1">
</form>
<script><!--
var x=0,stopp=0
function sort(){
x++
top.status=document.forms[0].ausgabe.value=x
if(stopp){
top.status=document.forms[0].ausgabe.value="Fertig."
}else
setTimeout("sort()",1)
}
sort()
//--></script>