Replacing annoying hold music with my own?
This is not a way to replace annoying hold music, but is a potential solution to being annoyed by music heard when on hold.

WeQ4U

WeQ4U is an app for iOS and Android (with an ugly name). Basically, you route all your calls through its numbers (included as local-rate minutes in plans) and, when you get into a queue with music, you simply hit *9 and the app continues queueing for you.

While there is no protocol for saying when you're on hold and voice recognition is imperfect, I believe the app asks the call agent to use some touch tone command to indicate when you've left the queue and then the app reconnects you. You can see an example of it working in this video.

So you never have to hear the music at all and in fact you can listen to your own music or do anything you want in the mean time. It's a free app, the calls are normal rate (it redirects from premium numbers too) and you use fewer minutes as it calls you back once you're off hold. So yes, I'd have to say such an app or feature does exist.

I believe this only currently works for UK numbers but there's no technical reason why it can't exist worldwide.