Fixed concurrent job processing
Bug Fixes
Previously, when jobs were dispatched with delays between them while the worker was already processing, newly enqueued jobs would not be picked up until a currently running job completed, even when concurrency slots were available.
For example, with concurrency: 5, if Job 0 was dispatched and started processing (taking 10 seconds), Jobs 1, 2, and 3 dispatched shortly after would wait for Job 0 to finish before being picked up, effectively running sequentially instead of concurrently.
The worker now periodically checks for new jobs when it has available capacity, ensuring that newly enqueued jobs are picked up promptly and run concurrently as expected.
Related #4