Use tail-recursion instead of setTimeout(0) on read->processing

Greatly reduces stuttering in files that are right on the edge
of performance envelope like 'Alaskan Huskies' 1080p video
in Firefox on MacBook Pro. (doesn't play the whole file through
smoothly, but the parts that are under target time are much
smoother than before)