Я думаю, что InvokeWorkflowActivity может быть тем, что вы ищете. Я использовал его для запуска рабочих процессов из других рабочих процессов, и он хорошо работает.
Просто помните о том, что новые рабочие процессы (как и все рабочие процессы) выполняются асинхронно, поэтому «родительский рабочий процесс» будет продолжать выполняться сразу после запуска дочернего рабочего процесса.
Если вы (по какой-либо причине) не можете использовать InvokeWorkflowActivity (например, если новый рабочий процесс должен запускаться из кода в службе, которая вызывается из родительского рабочего процесса), вы так или иначе получите удержание экземпляра рабочего процесса.
Способ, которым я подошел к этому сценарию, состоит в том, чтобы объявить событие в интерфейсе службы и сделать так, чтобы узел рабочего процесса подключал прослушиватель к этому событию, когда служба добавляется в среду выполнения. Тогда у вас будет кодовая точка, которую можно вызывать из службы (посредством вызова события), которая также будет иметь доступ к среде выполнения; тогда у вас есть все, что нужно для запуска нового рабочего процесса.