In your example you still have
TOOL_EXTRUDER(ToolExtruder1, 0, 0, 0, HeaterExtruder1, E1MotorBase, 1.75, 220.0, 20, 30, 1000, 40, "", "", &Fan1PWM)
TOOL_EXTRUDER(ToolExtruder2, 12, 0, 0, HeaterExtruder2, E2MotorBase, 1.75, 220.0, 20, 30, 1000, 40, "G1 A8", "G28 A", &Fan1PWM)
So there is a G28 A when you go back from T1 to T0. So please try
TOOL_EXTRUDER(ToolExtruder1, 0, 0, 0, HeaterExtruder1, E1MotorBase, 1.75, 220.0, 20, 30, 1000, 40, "G1 A0", "", &Fan1PWM)
TOOL_EXTRUDER(ToolExtruder2, 12, 0, 0, HeaterExtruder2, E2MotorBase, 1.75, 220.0, 20, 30, 1000, 40, "G1 A8", "", &Fan1PWM)
Instead. And if you want to test with G28 modify MotionLevel1::homeAxes as I described above which should exclude the part I make responsible for the hang.