@dc42 Here is the updated Retract macro from line 14 of my original post:
M400; clear the command buffer M280 P1 S{global.retract_angle} G4 P400; wait for purge bucket to fully retractBefore adding in the M400, the M280 P1 command was being executed between lines 7 and 8. I don't know if the dwell was being executed early.