System Preferences hangs when trying to open Display settings with an external monitor connected
So I figured this out, kind of.

I cloned and built https://github.com/CdLbB/fb-rotate, and flipped the external monitor around a couple times with it. Suddenly everything works, even after a reboot.

The only thing I can think of is that a config file somewhere got corrupted, and this utility rewrote it and fixed it. 

Either way, it works now!