I believe I've figured it out. It was just below the location you suggested in shape.py, I removed the negative from line 401 (depth = -abs(self.axis3_mill_depth):
For anyone trying this, one thing to note is the way this impacts the variables:
Z Retraction Area must be greater than your workpiece starting thickness (there is no warning for this if you're wrong)
Z Safety Margin same as above
Z Workpiece Top is the material thickness
Z Infeed Depth remains the same, it still functions as a depth per pass
Z Final Mill Depth is the Z height of the final mill plane instead of the depth of cut.
My use case is automated through the layer naming convention so I don't have any need for a safe Z check but for anyone using this method manually it may be worth adding in a few lines for that to save material/cutters/machinery from potentially getting ruined.
I'm just starting to test this more extensively, if I discover any further issues I'll post them up.
EDIT 1: It seems that the Z Safety Margin is not affected by the Automatic Tool Config Variable. I only ever use one clearance plane so I was able to set a default in Machine Config>Retraction Coordinate to sort that out for me.
Cheers!