Thank you for the update and the log message!
Yes, RuntimeManager.OnDestroy() already handles the normal FMOD shutdown sequence. There isn’t a supported way to force terminate all threads as far as I’m aware, but you could try calling Studio::System::flushCommands before Unity quits, to let pending destroy callbacks run.
That warning is expected if an event is stopped or released while it still has programmer sounds waiting to be destroyed.
It doesn’t necessarily mean the system is stuck. It just indicates FMOD is waiting for those programmer sounds to finish releasing.
There’s a good explanation of this behavior in this forum thread: