Update: The long-running process finished. The terminal prompt still shows the same mangled output. running echo $LANG (or ␊␌⎺ $LANG, as the terminal shows it) produced ␊┼_US↓UTF↑8, so seemingly still en_US.UTF-8.
running reset (aka ⎼␊⎽␊├) restored the session's text to normal, so for the moment the problem is resolved. I'm still interested in understanding exactly what happened, and how I can resolve it without waiting for the process to end first if it reoccurs.