The parity check has run through completely now and it hasn't crashed since then (in safe-mode with XMP on).
I now started all regular docker containers I run and it's been stable for half an hour at least.
As previously it'd crash within minutes of booting even with no dockers running and the array has now been running for 2 days,
I'd conclude that the issue was, indeed, that XMP was disabled as this is often recommended to do.
More precisely I assume the issue is that the 'AUTO' settings which appear to reduce the RAM clock speed may have attempted to boost RAM timings, whereas XMP would use an actually working preset the RAM is rated for.
So - if you recently disabled XMP and you now crash, try turning it on again if you ran stable with it before.