Hi Charles,
Basically, we must know to which HumanActivity the Work Order is currently assigned to so we can terminate the activity when the Work Order gets canceled. At any given point only one Human Activity will be active.
One way to resolve this is to have a column to temporarily store the current ActivityId of Human Activity associated with the WorkOrderId.
In the Automatic Activity used in the Conditional start flow, can have an aggregate to fetch the ActivityId corresponding to the WorkOrderId, and call the ActivityClose by passing the ActivityId.
Please let me know if you had found a solution already.