pexpect 2.1 ignores SIGHUP in the forked process. This means if the parent process dies, the child lingers indefinitely.
Re: the comment in the code: in the cases this behavior is desired (launching a daemon), the daemon should ignore the SIGHUP itself. If it doesn't, then a shell wrapper can use the "nohup" command or something. But ignoring SIGHUP on all pexpect-launched processes is heavy-handed and broke my setup.