Non-looping virtual channels stay virtual forever and don't ever stop or get paused

I cannot see anything that jumps out at me immediately, you have probably seen it already but I’ll link our main doc page about virtual voices in case that helps at all: https://www.fmod.com/docs/2.03/api/white-papers-virtual-voices.html.

Non-looping sounds should naturally end by themselves, but are you saying that yours aren’t? Is that for every sound or only some?
Are you using any dsp effects that could be keeping the channels alive?

Channels are stopped automatically when their playback position reaches the length of the Sound being played. This is not the case however if the Channel is playing a DSP or the Sound is looping, in which case the Channel will continue playing until stop is called. Once stopped, the Channel handle will become invalid and can be discarded and any API calls made with it will return FMOD_ERR_INVALID_HANDLE.