Call forwarding with time conditions and different external targets

Here’s my suggestions:

I would rather make a queue and have the agent on call log in when their shift starts and log off when their shift ends, then point failover to a Queue that has static “Backup Agents” and set the primary queue that if no one is logged in it should straight go to failover.

Now to login you can create a virtual extension with follow me to their mobile for each agent, so they can login to the queue and you can use a dashboard to log in/out like FOP2 or Queue Wallboard (I’m not sure tho is you can login to queues with QW)
Or you can setup something like described here, where agents can call a DID and log in either a virtual extension or a mobile number.

With that being said…
The real issue with emergency/on-duty calls happens when there’s no Queue/Call Manager on top of the calls.
You need to have someone that will be on top of your agents to make sure they will be taking calls, logging in and out on time, or even have the agents make sure they don’t log out before the next agent logged in and “tested the line”.

Now, to route internally, you can create a Misc Application 999 and point it to the Queue.

Hope that helps.