I tried to use non-terminating End Node inside the subprocess.
For non-autoComplete ad-hoc subprocess, it has no effect (the sub process does not end as I wish).
If ad-hoc subprocess is set to autoComplete=true, without End Node, the ad-hoc subprocess end if any of tasks (Review, Auto-Process, Investigate + Approve) is complete.
However by adding the End Node, I can now control the flow with gateways and signal to achieve the similar effect of completionCondition.