We implemented this by starting and starting work from the outside through MQ (an HTTP request will also work to get started). The scheduler places the message in the queue, and even if we have "n" nodes that are listening to the queue, one node will receive the message and start the task based on its contents. You can do this with HTTP too.
The real "solution" for this is to schedule the batch job from the outside, rather than through the internal cron trigger. The actual trigger mechanism is secondary to this.
source share