So I did what any good programmer would do, searched the Internets. Nothing. Then I fired up vim and exitted it (in a console, because X doesn't start with the lost signal bug), causing the predictable soft-lockup. Then I switched consoles and attached GDB to vim to see where it was blocked. Sure enough in libGL.so. nVidia's driver. I'm not sure why libGL is even being used, I suspect it has something to do with needing to wedge it in the signal path just in case.
On a whim, I let the program continue and stopped it again, this time it stopped in tls/libnvidia-tls.so.180.22. Excuse me? I'm on the 180.60 drivers, not 180.22. So I did a complete search for stale nVidia drivers:
/usr/lib64/xorg/modules/libnvidia-wfb.so.1 -> /usr/lib64/xorg/modules/libnvidia-wfb.so.180.22
/usr/lib64/libnvidia-tls.so.1 -> /usr/lib64/libnvidia-tls.so.180.22
/usr/lib64/libnvidia-cfg.so.1 -> /usr/lib64/libnvidia-cfg.so.180.22
/usr/lib64/libnvidia-cfg.so -> /usr/lib64/libnvidia-cfg.so.1
/usr/lib64/tls/libnvidia-tls.so.1 -> /usr/lib64/tls/libnvidia-tls.so.180.22
With similar ones in /usr/lib32. What a mess. I deleted them all, reinstalled the 180.60 nVidia drivers, and everything works properly!
Dear Gentoo: please cleanup your stale files. Thx, A Gentoo User.