If I use the firmware pause print, the bed rolls forward, the z axis raises and the print head moves to the X origin. Well, past it I think. On resume I have a 3-4mm X axis offset. I'm printing a bowl that fills the print area so quite easy to see X Vs y.
I'm aware of the front screw catching the bed issue for y offset, and this is not that.
I think what is happening is different behaviour when homing and pausing. When homing the head moves until the switch clicks closed, and then moves out again until it opens. On pause it just moved until the switch closes but then does not move out again. This could explain it, but it would give me a 3mm shift towards the origin. The thing is, the offset in the print occurs in the opposite direction!
The offset appears to be a once only consistent thing, so as long as I pause and resume at the start of the print I don't need to worry about it. Bit of a faff though.
Sounds like you may be engaging a hard stop by hitting the switch with a non-homing move. Did you happen to change anything in your nozzle parking config?
It appears you may have PARK_HEAD_ON_PAUSE enabled, with maybe an incorrect X value for NOZZLE_PARK_POINT. If this is the case, changing your print head parking location in Marlin to be a few mm in the +X direction from what is configured now may fix it. The default is 10mm away from the X endstop, which should not behave the way you describe.
I've not touched the nozzle parking config, but thanks, that gives the place to start looking!