Change redisplay to track what's showing and write only the changed lines; and, when cursor goes offscreen, only repaint after we settle on a new view.
avoid rendering twice on every update. (though we still do it too many times when the point goes offscreen.)