I think the concept of add/remove is possibly not needed.  You are calling these from the play/stop events for a sound effect instance.  So maybe do something as simple as:

```
SoundEffectInstancePool.OnPlay(soundInst);
SoundEffectInstancePool.OnStop(soundInst);
```

In the future we can maybe invert things to make a better SoundEffectInstance API with `SoundEffectInstance.OnPlayEvent` and `SoundEffectInstance.OnStopEvent` letting both the internal pool as well as end users hook into sound state changes.