Something simple, but just checking: the TIME OUT Digit Translation in each of your queue announcements is set to HANGUP, right? I know, that's counter-intuitive...but I see folks all the time who set digit translation for time out to send the call back to the HG. WRONG, that will recycle the call to the HG as a new call which not only puts the caller back at the end of the line but causes him to hear the ANNOUNCEMENT probably more often than he would have heard the OVERFLOW. Set TIMEOUT to HANGUP and it only hangs up the announcement, not the whole call, and caller retains place in queue. The other destination, RECALL, removes the call from the group entirely and sends somewhere else.