Dado que su agente de lanzamiento por usuario realmente se ejecuta, aunque más tarde de lo programado, es muy probable que su sistema esté inactivo a la hora programada. Recomendaría leer la página del manual ejecutando el siguiente comando desde una sesión de terminal:
$ man 5 launchd.plist
Respecto a la opción StartInterval
específicamente, la página de manual tiene esto para decir:
A diferencia de cron, que omite las invocaciones de trabajo cuando la computadora está inactiva,
launchd comenzará el trabajo la próxima vez que la computadora se despierte. Si transcurren múltiples intervalos antes de que se encienda la computadora, esos eventos
se unirá en un evento al despertar del sueño.
Si está trabajando de forma remota, o no está presente físicamente a la hora programada, lo que no queda claro en su pregunta, un buen punto de partida sería confirmar que el sistema no ha entrado en modo de suspensión antes de la hora programada de su lanzamiento. agente.