@KevinH: Fixing sys.argv is trivial, if you want I can send you some code for it. Or just use this years old recipe:
http://code.activestate.com/recipes/572200/
As for multiprocessing, just dont use it. There is no need to to use it. All of calibre, which makes extensive use of worker processes never uses it. You can simply use the Listender and Client classes from the multiprocessing module to implement IPC between processes you launch with subprocess.Popen