Hm, does caching the result of each unique `tput` fix that?

I don't see any `tput`s inside the Main loop. Only at startup and exit. Comment at the top of my version (HEAD as of yesterday) says:

  # This version is optimized for speed by:
  # 1. Using direct ANSI escape codes instead of forking `tput` for every update.