It is still pretty much as I indicated.
If co-workers are dialing the queue extension directly, then they are bypassing the initial time controls that are associated to the inbound trunk rules. This then means that the time control has to be at the extension level and that each member extension for the queues has to be logged out. This then forces the queue to invoke the forwarding rule for no available agents as all should be logged out.
You then create a new IVR with the office closed message and have that newly created IVR be the forward to extension.
The downside to this is that the office closed IVR may be reached if the agents are logged in, all are busy and the wait time is reached. I think this is what you have tried to indicate in the response, but the key is the wait time before that occurs and/or not hitting the * key (if they known that feature). So, I guess the question becomes what do you want to happen during office hours, when all the agents are busy and the wait period elapses? Where do you want the calls to go in this situation?