Found how nouveau was being loaded while blacklisted: it's in the initramfs and nvidia-331_hybrid.conf wasn't.
This can be fixed by updating the initramfs (sudo update-initramfs -u, assuming the kernel you are currently running is the one you want to use nvidia-331 with), but my system also seems to have forgotten that nvidia-* needs the text-only splash screen (bug 1063969), causing it to drop into a low resolution graphics mode. This can be worked around by disabling the splash screen entirely (remove "splash" from the kernel command line in /etc/default/grub then run update-grub).
Found how nouveau was being loaded while blacklisted: it's in the initramfs and nvidia- 331_hybrid. conf wasn't.
This can be fixed by updating the initramfs (sudo update-initramfs -u, assuming the kernel you are currently running is the one you want to use nvidia-331 with), but my system also seems to have forgotten that nvidia-* needs the text-only splash screen (bug 1063969), causing it to drop into a low resolution graphics mode. This can be worked around by disabling the splash screen entirely (remove "splash" from the kernel command line in /etc/default/grub then run update-grub).