Problem reported by @CraftSpider on gitter:
CR2 says location is 0x866B, corresponding to... an offset of 8 from the current GDT, which would be GDT::next_free. Error code is 0, which I gather means caused by a read to an unmapped page. This happens when I don't set a GDT myself, so... The GDT the bootloader is setting is in an unmapped location? Unless the bootloader just expects you to always set a GDT yourself, or I'm misunderstanding something :P