So it wasn’t the pullup resistors. At about the 36 hour mark it restarted on it’s own (presumably the WDT caught a problem) then another 40,000 seconds later it hung. Interestingly enough the inter-frame time shows only 17ms right before it crashed, meaning the previous frame took 13ms to render. That seems slow and I wonder if the long frame times are somehow related.
For now I’ve upped the on-board 12V capacitor from 47uF to 680uF, and added a 47uF electrolytic capacitor in parallel with the 2.2uF ceramic on the 3.3V bus right beside (well, ontop of) the regulator. Time to run it for another few days!