This is really a interesting property of terminals to work with ( master and a slave)
Even once I tried to write my own version of script command,
with date-time stamping, userid and hostname stamping.
As said it would capture everything, literally everything.
Where the problem arises is,
we need to derive the pattern of so-called junk characters all those - ^v, ^M stuff.
mostly for utilities where it execs shell and has the tty controls itself rather giving it to the shelf.
Steps I went through
1) Determine the pattern and give a bulk replace
2) All such patterns to be replaced in a run
3) Such patterns with vi empty lines and command line utility would be easier to determine
4) Difficult part comes with the utilities which run as curses program.
Still am not successful with the 4th pt.