Errors need to force the program to exit with non-zero exit code.
Current rate limiting is a simple implementation based around sleeping. This tends to:
- not keep the right times
- behave differently in various terminals
- behave very erratically in virtual machines
A new rate limiter should be implemented, that works at a fixed lower frequency 50-100Hz and delivers changes in bulk. Note that retrofit should avoid flushing the output stream multiple times within a single bulk delivery.