Como fazer com que o loop seja sincronizado com o temporizador UTC e executado a cada novo minuto?

Eu quero que um loop seja executado uma vez a cada minuto quandodatetime.utcnow().second é zero. Até agora eu tenho esse

while True:
    while datetime.utcnow().second != 0: pass
    do_something()

Mas o problema com isso é que estou perdendo processos de CPU. eu usariatime.sleep(60), mas eu não sei como seria sincronizar com o relógio UTC, porquetime.sleep(60) poderia se desviar do horário oficial UTC com o passar do tempo.