So I've been thinking more about this, and playing with my autoprobing setup and got it all working smooth and... I feel dumb. I already have a encoder that measures the height differences between movements and plumbs it into the offset calculation. The toolsetter.
Now I properly understand how gmoccapy touch off works, i.e, I have the height above the bed as a parameter, and the height above the bed of the toolsetter touch off mechanism. Nowhere is the bed height itself defined, and it measures this every tool change as part of the automation.
So I can call a tool change for a long tool, drop the knee down a few cranks without being precise about how far, as long as its enough to fit it in the travel, and when it touches off the tool, it does all the calculation to heights and offsets automatically.
Its really simple for this use case, and I've been testing it the past few days.
I only need to do more once I add a stepper to move the knee, and even then the toolsetter touch off will deal with precise positioning and I could do something like tell the knee to move and how far for a tool change if its over x length and let the toolsetter deal with it in travel.