Sorry, I was going to reply right away and got side-tracked. Without knowing all the details, this is just a hypothetical design (you’d need to fill in more details in the processes).
If you want to do everything within one task, you’d have to code a custom form (e.g., html with AngularJS, etc.). When the main approver claims the task, you’d have buttons on the form (or drop downs for the dept, etc.). Approver would then type in the feedback instructions/clarification questions, then this would send a request to the sub process using the REST API. You could store the feedback/dialog/notes in an application database and create REST services to access the data to present on the User Task.
Or, you could look into how signals work and create signal events that could update your process variables with the new data from the feedback tasks. I am fairly certain that you can create ascyhronous signal events to communicate with running processes to update information while it’s doing other things in parallel.
The subprocess could also be set up so that it sends an e-mail (or any other type of notification you’d have) to the approver when their feedback is completed, then the approver would go back into the task and see the information.
Also, please note that these are separate processes (separate BPMN). You can call the processes via RESTAPI using a regular Java class (or whatever you use). You can send the data to initialize the tasks as JSON, XML, or whatever you want. That way you can re-use the sub process for the feedback/clarification as a generic task and send in the department info on the request (alternatively, if the departments would have different tasks, you could make different processes or do some sort of exclusive gateway and have a condition for the different departments. However, it’s nice to use separate processes so you can change the bpmn independently from the others.