The activiti JobExecutor is not meant to be used for realtime or even near real-time executions. The jobExecutor checks for jobs every 5 seconds and each job within that interval is selected, but if something is run, it is also selecting additional jobs that are due within the next period afaik. So it could be a job is 0-5 seconds early or late. And the default number of threads for the jobExecutor is 3, might also have something to do with it…
But what a strange process if I may say so… (or I might miss something). You have a repeated timer, but the script task that is executed afterwards loops back to the same timer…