Da das Python hier eigentlich ein Service wäre, mache ich sowas immer wie folgt:

1. (z.B. via SBMJOB) im Batch starten.
2. Der Aufrufer schreibt in eine Tabelle die nötigen Infos für das Service
2.1 Will ich das ganze synchron haben:
2.1.1 erstellt der Aufrufer eine Client DTAQ
2.1.2 Den Namen der DTAQ (inkl. Lib) übergibt der Aufrufer zusammen mit der ID an das Service
2.1.3 Der Aufrufer horcht auf seine eigene DTAQ auf Antwort vom Service
2.2 Will ich das ganze asynchron, übergebe ich nur die ID ohne Antwort DTAQ
2. Python horcht dann auf seine DTAQ nach neuen Aufträgen (SQL: Receive Data Queue).
3. Verarbeitet den Request
4. Schreibt das Ergebnis + Status + mögliche Fehlermeldung + was auch immer, in die Tabelle mit der ID zurück
5. Wurde eine Antwort-DTAQ mitgegeben, schickt das Service noch ein kurzes "fertig" an die DTAQ

Das kann man auch schön parallelisieren indem einfach weitere SBMJOBs abgesetzt werden.
Das ist alles schön transparent, erweiterbar, austauschbar usw.