Suppress None print after traceback + minor fixes

The printing of None happens in the call to

multiprocess.Queue.get()

Since this is a Python library, there's nothing we can change about this
directly; it appears to be a bug in this module and if so, it needs to
be addressed by the Python dev team. As a temporary work-around the
sys.stdout is temporarily rerouted to a StringIO object and reinstated
after the Queue.get() call has completed.