The best thing about all character-based applications I've ever used is the keyboard buffer. Even if you're using a TUI on a system that has a slow backend, it almost always blocked the thread and didn't consume from the buffer during waits, so if you knew the sequence of keys was "Total, F1, 1, Enter, Enter, Tab, 2125551234, F10, 1, Enter" you could just enter all those keystrokes as fast as you could and the system would eventually catch up with you, meanwhile you were bagging a purchase or counting out the cash, whatever.
The GUI also has lag - especially in the era of web-technologies-bloat, more lag than ever - but whether touchscreen or mouse there can't be a buffer, so each lag requires you to stare waiting for the next UI to be drawn.
This is a good point: you can build character-oriented interfaces "for dummies" — IBM i née OS/400 which Costco uses is actually good at this, with a standard interaction design centered around menus and form interfaces that map directly to CLI commands — and information-dense GUIs, but you can't very well build point-and-click interface with keyboard-style buffering.
Unfortunately web-inspired TUI toolkits start to lose that property. Hit a key too fast, before the next screen runs code to attach its event listener? Sorry your key is lost.