I like this approach, especially for systems that don't immediately require scaling to millions of users.
I use MySQL with the 'SKIP LOCKED' option for my queues. I recognize that this method may not scale indefinitely, but it negates the need to add new infrastructure across all environments, saving on costs and devops effort. I've intentionally designed the event sending and receiving code to be abstract, ensuring that if the need to switch systems arises, it should be a reasonably manageable task.