Listening for VimLeave was sub-optimal. popen.terminate() is much cleaner.
Still a lot of work to do.