Poiché il tuo agente di lancio per utente viene effettivamente eseguito, anche se più tardi di quanto pianificato, è altamente probabile che il tuo sistema possa essere addormentato all'ora pianificata. Consiglierei di leggere la pagina man eseguendo il seguente comando da una sessione di terminale:
$ man 5 launchd.plist
Per quanto riguarda specificamente l'opzione StartInterval
, la pagina man ha questo da dire:
Unlike cron which skips job invocations when the computer is asleep,
launchd will start the job the next time the computer wakes up. If multiple intervals transpire before the computer is woken, those events will
be coalesced into one event upon wake from sleep.
Se stai lavorando in remoto, o non fisicamente presente all'ora programmata - che non è chiara dalla tua domanda - un buon punto di partenza sarebbe quello di confermare che il sistema non è entrato in modalità di sospensione prima del tempo pianificato del tuo lancio agente.