Thank you! I used script. Certain implementations have an option to emit timing and byte count data on stderr. Then it's just a matter of saving it and building something to honor those delays during playback.
That's awesome! I had no idea about `script -t`; I'd written my own a few years back. Thank you!