When should I run queue/listen instead of queue/run?
queue/run - should be used if you're going to manually execute this command via a cron job or such, because it runs any pending queue jobs, then exits
queue/listen - should be used if you want it to constantly poll (with a reasonable cooldown interval) for new jobs, and run them, because it runs a listen process that spawns a sub-process to run queue jobs as they come in


More here: Robust queue job handling in Craft CMS