You should consider Virtual Hold.
This is a great product. The basic function is that it prompts callers, based on an estimated queue hold time threshold exceeding, to leave a phone number for call back. The customer does not loose their place in queue, an outbound call is initiated to the customer when the resources are available. This increases customer satisfaction, reduces telecomm costs and levels the spikes.