Cool trick! I'll give it a go!
So... if I understand this correctly... my firmware is currently set up such that max X and max Y are 220 mm. I can't use the panel controls to manually move beyond there although the actual clearances allow the print bed and/or printer head to move beyond those areas. BLTouch measures at those extremes (0 55 110 165 and 220) along both X and Y axis.
Lets say I place my switch where it would presumably trigger at Y 223.0 (had I been able to move there without changing the steps/mm). Sounds like I'd move to Y 217.0 then double the steps/mm, move to Y 220.0 (via relative Y+3, which would really be 223.0 since we're doubled) then back to Y 217.0 (via relative Y-3, with steps still doubled). Then change back to original steps/mm? I'd imagine the gcode something like the following block:
G90; move to absolute mode
M82; turn absolute distance for the extruder
G0 X55.0 Y217.0 F5000; <--- 6mm shy of button location at Y=223mm, X picked to avoid bed clip
M92 Y160; temporarily double the steps/mm setting (to reach outside normal allowed Y range)
G91; move to relative mode
G0 X0 Y3 F2000; press the button (actually moves Y by +6mm since steps/mm doubled)
G4 P1300; dwell for 1.3 seconds (filament select)
G0 X0 Y-3; back off button (actually moves Y by -6mm since steps/mm still doubled)
; repeat above as needed for additional button presses...
; note: make sure we return to the original location prior to the button presses before
; restoring steps/mm setting.
M92 Y80; restore original steps/mm setting (we're now back at X55.0 Y217.0)
...and so forth?
P.S. I also like that your solution doesn't eat into my normal print bed range!😎