Solution 1:

Wow did this take a long time to solve.

As of Linux 3.10 (I now use ArchLinux rather than Ubuntu), the snd-hda-intel driver will automatically work correctly with the headphone jacks (i.e the internal speakers will correctly disable when headphones are plugged in), but the subwoofer is assumed to be plugged into the wrong port. You can correct this by manually manipulating the port the woofer is plugged into using hdajackretask in alsa-tools-gui (for me it was 0x10). The tool also provides the means to make this a boot option so that this process does not need to be repeated.