Thanks for your feedback. Unfortunately this is not possible at the moment. When the agent hangs up, the call is ended all the way to the caller, so it's not possible to automatically "transfer" it to a new destination. The way to do this would be creating some kind of conference with a new "monitoring" entity, which should check if the agent dropped the call, and in that case the "conference" would still be active, and the "monitoring" entity would be able to transfer the call to the survey app. This would be a big change in 3CX...
There is an idea already created about this, maybe you want to upvote it:
https://www.3cx.com/community/threads/post-hangup-destination-on-queues.44871/