Go back to looping heavytask() directly - setTimeout doesn't seem to be effective in freeing up the UI thread to avoid Wait/Kill message