Ah good point, that is one drawback of a direct drive extruder.

have you tried sort of daisy chaining operations.
Say, pause the print then go to the load/inload filament option. Change, then go back to the pause print menu and resume printing ?

It's got to be worth a try :-)

Failing that just split the stl vertically.
print the first part, change filament and then print the second half starting where the first one ends.
You'll have to be careful where you place the print to avoid the head crashing into it when you start the second print. But some gcode could probably get round that.

What firmware are you running ?