That's one of the reasons why process-kit exists. Providing blocking start and termination functions at the ``Process`` class level (!= ``ProcessOpen`` ;) ).
By now it's implemented at the ``Process`` class level as a ``wait(until=lambda p: p._child.returncode is not None)`` if my memories are correct.