Check your M558 if it is correct in your config.g -> H0 ???
I can only tell you how it works for me and it does it without any problems:
First I have homed my printer in all axes, where I have the endstops X min, Y min and Z max -> so my config.g = "M574 X1 Y1 Z2 U2 S1" (is built differently for you, so configured differently ). also i do NOT use my mini-ir as z endstop
Then I determined the distance with the procedure
drive the bed to center and Z about 10mm -> check indicator "probe" in the DWC (must be 0!)
manually move carefully in the direction of Z0 -> display "probe" in the dwc must indicate a value of about 465 when the nozzle come closer to the bed
drive further in the direction of Z0, the "probe" value must indicate about or over 535 (now your nozzle has only a little distance to the bed)
drive the bed back to approx. Z10
Send M558 P1
send G31 P500 Z1.0
manually push the printhead into the middle of the bed
manually approach Z0 with paper
set Z0 with G92 Z0
drive to bed position with G91 Z5
take the measurement with G30 S-1 (note: this value should be between 0.5 and 2.5!)
now send G31 P500 Zxxx (xxx= the value which is shown at the G30 S-1 command and write it in your config.g too!)
write the corect M558 in your config.g