The StartTransientUnit call returns as soon as the job is enqueued, but does not wait for systemd to actually do the work. Wait for the job completion signal before continuing to exec, or until 1 second has passed.