Hey wck555, thanks for your analysis and excellent posts.
I can confirm the behavior: the NVIDIA driver changes the HDA and stops the audio.
So I digged into this a little more and I believe that using hda-verb and/or hda-analyzer we can directly change those options after that the NVIDIA driver loaded (and changed them).
According to the Kernel.org ALSA HD-Audio Documentation
enabling a couple of options into the kernel (CONFIG_SND_HDA_HWDEP and CONFIG_SND_HDA_RECONFIG) we should be able to access to some interfaces to directly manipulate HDA configs and pins.
It seems also possible to create a patch for the HDA to do this, so we could automate it.
I am recompiling my kernel just now (on an Apple TV it is not quick). I will tinker with this during the afternoon and post an update tonight.