I'd just put A_PlaySound in there and set it to loop to itself, and the state would last as long as the sound. Considering the "collection" part is most-likely hardcoded, I'm sure they wouldn't cause problems by conflicting.
If so, is there a way to make the thing disappear when the item is picked up by the player?
Assuming that object sets the item as its target or tracer you could easily just use A_CheckBuddy for that. Removes the actor if its target is gone or dead.