Just reporting back that I've implemented this and it works a treat. 🙂
I added a few M291 commands so that I get to know what's happening. So at the start of homing I have this
; start by warming the hot end so that any oozed filamnt is molten
T0; select a tool - any one will do
; check if tool is hot, if not start to heat it to 140 deg C
if sensors.analog[1].lastReading < 140
G10 P0 S140
M291 P"Hot end set to 140 deg C" R"Homing Macro" S1 T10
Then I home XYUVA and B after which I check the hot end again and reset the temperature if it's still below 140. Then I wait until it attains that value (or higher) like so...
; check again if tool is still at or above 140 deg C, if not heat it
if sensors.analog[1].lastReading < 140
G10 P0 S140
M291 P"Hot end below 140, so set to 140 deg C" R"Homing Macro" S1 T10
; now wait for temp to get to 140 or above
while sensors.analog[1].lastReading < 140
M291 P"Waiting for hot end to heat" R"Homing Macro" S1 T4
G4 S4
Then I go on to wipe the nozzle before moving the hot end to the centre of the bed and homing Z. The final part of the homing routine is to set the hot end back to 0 and restore the motor currents.