New canvas: smooth replay, refactor; undo/redo pause visual