An idea could be to slightly refactor your code to use durable functions instead. You'd start the orchestrator when the user starts the workflow, start all the child instances from the orchestrator and, if needed, cancel the workflow by terminating all the child instances.