Since Alsa has issues playing two different audio streams at the same time, and portaudio has trouble identifying audio hardware, it would be great to see PulseAudio as an audio engine. PulseAudio has a long history as a source of user frustration, but the last few years I have used it on pretty much all my desktop systems without issue, so I feel pretty confident that it’s ready for prime time now.
There is a module called soundcard available from pypi (pip3 install soundcard) which looks like it might be helpful. It gets a list of cards and provides access to record and play functions. I’m not sure how or if it handles devices, so I’m not sure how to play output from the Raspberry Pi HDMI output yet. https://github.com/bastibe/SoundCard
It is also cross platform, and is supposed to work on Windows and OSX in addition to Linux.