I’ve managed to find the solution:
We used this:
cmd = [app_path] + app_args.split() # linux
cmd = f'"{app_path}" {app_args}' # windows
exit_code = subprocess.check_call(cmd)
and this blocked the execution of subsequent code until the app was closed.
Correct usage:
cmd = "%s %s &" % (app_path, app_args) # linux
cmd = 'start /B "App" "%s" %s' % (app_path, app_args) # windows
exit_code = os.system(cmd)
found here: https://github.com/shotgunsoftware/tk-multi-launchapp/blob/master/hooks/app_launch.py