Based on my experience working on large scale projects that utilize hundreds of workers, I'm on the side of the debate that believes PHP is very efficient for getting the right job done.
I've seen how powerful Laravel workers are with crunching a very large number of jobs on different server capacities and doing the job pretty well.
To do this, you can configure a CRON job to run every hour and call the queue:restart command: Adding this to your /etc/crontab file will run queue:restart every hour. Workers will receive that signal and exit after finishing any job in hand.
Finally, you may signal the worker to exit from within a job handle method: This method can be useful if you know this specific type of job could be memory consuming and you want to make sure the worker restarts after processing it to free any reserved resources.