It's a while since I researched this but the UK AIP stated set QNH as soon as cleared to an altitude (on descent) unless further flight level vacating reports required, in which case set QNH after last required report.
ICAO stated set QNH when cleared to an altitude unless level flight about the Transitional Level is anticipated.
Of course the threat of setting QNH late is the risk of busting Safety Altitude especially with low atmospheric pressure notwithstanding that most operators require QNH to be previously set on the Standby Altimeter which on some types may be the reference for pressurisation.