I’m like you Jon, but a bit better (0.5mm error on the upper axe, 0.2mm on the other). If I cut a square 10mm or 100mm, I still have this 0.5mm. I tried a bit like you: CamarO(must be isostatic, but I tried…), playing with nuts tension, trying to mill higher, very small passes and slooow feedrate, etc…I checked my Z axe, I played with belt tension, put my corner reinforcement, made the build again to make everything perfectly smooth, etc…always the same error.
I don’t have idea any more (I didn’t thought about the ‘halfway belt’). If someone else have some idea…
 with a pen, I’ve no error, it’s really something happening when milling. Old video with the pen : https://www.youtube.com/watch?v=BU2dIvIacy0