He wants to build in a "cool off" time at the end of each call for documentation. The time seems to be triggered (right now) by the phone being off-hook so that he can't get another call. Since the phone number is a one-for-one with the agents, each number has one answerer, and he wants to be able to finish documenting the last call before the next one starts.
Note that this is NOT the way I'd do this (four lines, four agents, four destinations off one queue), but his process seems to work for him, so ...
What are ways to implement a "cool down" that can be triggered by something on the phone?
The first one that comes to mind is to add something that sets the phone up in DND - maybe an ARI script in the CRM interface? As soon as the agent picks up a call, the phone is marked DND until he clears the DND (*79?). Once he's ready for another caller, he can "press the DND button" (or dial *79) and turn DND off, making him available for another call. That way, your idea of using a queue would make the rest of the system simple, and give the customer a better user experience (something about the average wait time, etc. They would always be "first in line" since the call is coming on one-for-one on DAHDI (the number will be busy if they agent is on a call) and the customer would be dropped into the queue if the extensions is still DND, but otherwise available.