I haven't done anything with line disciplines since the 1980s, but the set, wait a bit, and reset paradigm of with-raw-mode etc. wasn't the norm back then, a program like a version of EMACS would set raw mode and stay in it, resulting in your having to blindly type reset^J if it crashed without restoring the tty to cooked mode.
Is there any chance characters a user will be typing will get "stranded" in the finite interval between calls to with-raw-mode?
- Harold