Stop a looping sound with play only

It’s difficult to make recommendations on the preferred or standard ways of handling event instance lifecycles, since it depends on the needs of your game and the specifics of your own code. In general, I would say to try implementing something, and then see what issues arise and address them as needed.

Both of your proposed solutions sound viable though - in the case of the first, ensuring all instances are stopped is something you’d need to note as a requirement of the system to address the case where someone forgets to add a stop-call.