I had exactly the same issue. For me it wasn't anything so complicated as mentioned above. I'd simply left RunOnStartup set to true.
What I believe was happening is that the process started to ultimately check if the schedule needed to run, then ran the process and startup and again on the schedule.
I removed the RunOnStartup and it now only triggers once.