I would think that unless the call is waiting in a queue, the time before a call is answered should not be very long. Most calls to sets with voicemail will route that call after about 15 to 20 seconds. That being the case, there should be no need (option?) to play music. The recording that their call is being transferred (which you could re-place with another recording, but it will replace all instances it is used on the PBX), along with the beeps should tell people that they should continue to hold. It may be that rather than beeps, a better option might be ring-back tone. As is, I'm not certain that this is an option, but could be suggested in the 3CX Ideas forum.
I have come across many systems, that use a beep, rather than music to signify that a callers is on hold. Dead air (silence) would not be a good idea as that may have more callers thinking that they have been "dropped" than a series of beeps.
If I call a number I haven't called before, I would wait 30 to 45 seconds of silence, then hang up and try again. If I heard a beep, or some indication that the line hasn't gone dead, I will wait longer.
It may be that you should consider using a queue, if answer time is delayed to the point that callers are hanging up, it would give more flexibility in dealing with them.