Of course!
The whole idea of a Music on Hold is that you have a call parked on a music loop only while waiting for the next available agent.
I think you are using a wrong function in ICD (are you using G6 or G5?) do no use Treatment function. The treatment function is only to be used when you REALLY want to route your call to the music port for the period of time sepcified in the function.
The best way to do it is to use "Treatments" inside one of your "Target Selection" objects (it looks like a bullseye and says "routing" on it)
In case of Meridian, under the "Busy" page in that object, click on "Use Treatments", add your new treatment (music), set the route number for the music port, click on apply compatible treatment, set the maximum time for this treatment to be applied (36000), and then in "Target Selection" page, add your target, the maximum time your call should wait for this target, virtual queue for the call to be parked in while waiting for the target, and you should be fine...
Tell me if you still cannot get it.
Vic