cron se usa cuando desea que un proceso se ejecute en un tiempo absoluto preciso (es decir, a las 3:15 AM todos los días o cada hora a las X: 05 más o menos) mientras su secuencia de comandos es relativa a la hora en que lo inicia. En su ejemplo, se ejecutará cada hora desde el momento en que lo inicie, lo que debería corresponder con la secuencia de arranque. Entonces, si su PC se inicia a las 1:05, tendrá su trabajo hecho en cada X: 05, mientras que si se inicia a las 3:36, tendrá su trabajo a las X: 36.
Si solo desea que se haga aproximadamente una vez por hora, entonces realmente no cambia, pero, por supuesto, puede ejecutarse en cualquier lugar entre el primer y el último minuto de una hora, dependiendo del arranque. En realidad, si su do_task es algo largo que lleva mucho tiempo, incluso puede terminar ejecutándose con menos frecuencia de una vez por hora (ya que el sueño se calcula al final de la tarea, por lo que si do_task tarda 30 minutos, do_task comenzará cada 1 : 30 horas en tu caso)
Por otro lado, usar cron si su sistema no siempre está activo, puede perder fácilmente algunos eventos (ya que se realizan justo cuando la condición es exacta). En este caso, se recomienda más anacron (ya que solo se ve el tiempo desde la última ejecución). Otra cosa es que cron de todos modos ejecutará el trabajo incluso si la ejecución anterior aún no terminó, lo que en algunos casos puede ser bueno o malo, mientras que su script no lo hará.
En pocas palabras: si necesita un crono definido y sabe que el tiempo suele ser mejor, si solo necesita una tarea periódica sin tiempos específicos, entonces puede ir por un arranque.