Do not run G32 S2 in start code. S2 means store to eeprom so you do not need it every time. If you really want to measure it always, just omit S2.
Is your z probe also z end stop? If not, that is a big problem. You also need to disable ALWAYS_CHECK_ENDSTOPS since z probe might trigger preventing moves down when not measuring.
Otherwise modify z probe height by your error and be happy.