I tried it again with your patch and force_early_printk, no luck. I can start dropping printks around the NMI code but I feel like I don't really know what I'm doing.
Also I managed to hit (presumably) the same bug on a skylake machine. That one doesn't have a serial cable hooked up to it, I'll try to see if I can find one. I am running debian-unstable with gcc 7.2 if it makes a difference. Vince