Automatic bed leveling probes outside of bed despite NOZZLE_TO_PROBE_OFFSET
The problem is that, although you have set the offsets correctly, the boundary limits for the probe to "probe the area" have not been adjusted. It is my belief that this is a flaw in ABL of Marlin 2.0.x. If the user has set the probe offsets, the firmware already knows that the probe area is limited!

This answer on question "How to set Z-probe boundary limits in firmware when using automatic bed leveling?" describes in detail what the boundaries of the probe are for Marlin firmware 1.1.x and 2.0.x.

Basically, you need to set the boundaries of the probe using some extra definitions in your Configuration_adv.h file:


  constexpr int nozzle_to_probe_offset[] = NOZZLE_TO_PROBE_OFFSET;
  #define PROBE_X_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[0]
  #define PROBE_Y_OFFSET_FROM_EXTRUDER nozzle_to_probe_offset[1]


When including the MIN_PROBE_EDGE this means that the area is defined as:


  #define MIN_PROBE_EDGE_LEFT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_RIGHT (MIN_PROBE_EDGE - PROBE_X_OFFSET_FROM_EXTRUDER)
  #define MIN_PROBE_EDGE_FRONT (MIN_PROBE_EDGE)
  #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE - PROBE_Y_OFFSET_FROM_EXTRUDER)


(Since the offsets are negative in your probe setup, we need to subtract the values in order to add up the absolute value to the edge...)