Forking with SDL_mixer

I have an application that starts up SDL with audio and video
(SDL_INIT_VIDEO | SDL_INIT_AUDIO). Much later, I want to fork off a process.
That process does not need (or want) access to any of the audio or video
stuff. In fact, I’d really like to have it shut down any connection it has
to audio or video, so that it can’t hang on to a file descriptor or
something and mess up anything else. (It’s basically meant to be a daemon
process that inherits a lot of data from the parent, so doing an exec is a
pain because I have to recover a lot of state.)

I tried doing an SDL_QuitSubsystem(SDL_INIT_AUDIO) to accomplish this, at
least for the audio portion, but that resulted in a hang on shutdown – I
think the parent’s shutdown. The stack trace showed alsa waiting for audio
to complete.

Is there a way to do this?