A data platform runs maintenance jobs on a single worker that can only do one thing at a time. You are given a list of jobs, where each job is a pair [ready_time, duration]. A job cannot start before its ready_time. Once a job starts, it runs to completion without interruption. The worker starts at time 0. Whenever the worker is idle, it looks at all jobs that are ready (ready_time <= current time) and starts the one with the smallest duration. If several ready jobs share the smallest duration, it starts the one with the smaller original index in the input list. If no job is ready, the worker waits (jumps) until the earliest ready_time among the remaining jobs. Each job's waiting time is its start time minus its ready_time. Return the total waiting time summed across all jobs. Because the total can be very large, return it modulo 1000000007.