If the Bed Level routine is working, and as you say you can see the Z axis motors compensating during the print, then you must check your Z-limit sensor, which in this case is even your Z-Probe, do the Zprobe test(the one in the screen menu) several times on the same point with cold bed first and hot bed after, check if the result is always the same.
If your sensor is working properly you should see always the same numbers, at least a gap of 0.01/0.03mm, not more, if is more then you have a bad probe(inaccurate), or mechanichal backlash in the Z axis.
Homing is a thing, finding the bed is another thing, as the grid is stored, and till you shut down smoothie or you do again, it never change.
so, in your starting script you should find just the Z-probe at every print, as the grid should be done once and thats that, so you could setup a routine in the Custom Menu and do it once after you heat the bed, then just compensate the gap(if there's any with the Z-offset and store it)
If you are working on a aluminium bed with the glass on top, the things are even worst , because the distance first, and the difference in temperature on the bed surface are not the same as the aluminium is sensed much less than the iron, so in not the same inductive reading across the bed grid.
Check first if your bed is quite mechanically leveled by testing with the paper in the 3 points of the Zprobe grid first(just to start with the right foot)
We are talking about 0,1mm that make the difference in printing a good 1st layer, so every 100th of mm count.
Personally i got rid of the Z-probe on the extruder, and now i'm using the FSR sensors under my bed, (i have a cartesian printer)no more problems, just turn on, heat the bed, do the first probe and print……
Shame i cannot post pictures of what i did on my printer, it really worth the effort in doing it.
Hope that what i say it make any sense,