Answering the first part, the only way to assign a number/extension to a queue is by using a flow + did + call routing, etc..
Regarding the internal connection, it's entirely possible.
I'm not entirely sure of the your scenario, but I think the call will reach number X, be transferred to an agent, and then you need to send it to another queue, but without dialing out, is that correct?
You can add a button to the agent script with the action "blind transfer" to the queue.

------------------------------
Kaio Oliveira
GCP - GCQM - GCS - GCA - GCD - GCO - GPE & GPR - GCWM
PS.: I apologize if there are any mistakes in my English; my primary language is Portuguese-Br.
------------------------------