Issue with Agent Call Hangup Route and unanswered calls

I'm having a kind of expected issue while using the "Agent Call Hangup Route" feature.
Agents are doing blended campaigns, and sometimes when they use outbound manual dialing, they run into a phone number which doesn't answer or sends the agent to voicemail, so then the agent decides to hangup the call.
However, if the agent cancels/hangups the call, the customer side is being sent into the configured Call Hangup Route (in this case it's a survey). This is a problem, because now the customer side is inside a survey, but no one was available to answer the call.
We want to keep the call route as the "default" action, but in some cases or dispositions, the agent should have an option to override the route. I first thought on using the "Dispo Call Url" so when the agent dispos the call as "N" or "A", then the call gets hungup by the API. The problem I find with this is that the call gets removed from the agent as soon as then press "Hangup", so the API cannot hangup a call which has already left the agent's session.
Do you have any ideas on how could I stop this from happening for calls which aren't really answered by the customer?
Regards,
Agents are doing blended campaigns, and sometimes when they use outbound manual dialing, they run into a phone number which doesn't answer or sends the agent to voicemail, so then the agent decides to hangup the call.
However, if the agent cancels/hangups the call, the customer side is being sent into the configured Call Hangup Route (in this case it's a survey). This is a problem, because now the customer side is inside a survey, but no one was available to answer the call.
We want to keep the call route as the "default" action, but in some cases or dispositions, the agent should have an option to override the route. I first thought on using the "Dispo Call Url" so when the agent dispos the call as "N" or "A", then the call gets hungup by the API. The problem I find with this is that the call gets removed from the agent as soon as then press "Hangup", so the API cannot hangup a call which has already left the agent's session.
Do you have any ideas on how could I stop this from happening for calls which aren't really answered by the customer?
Regards,