We had evaluated Celery for our use case. There were a few things it couldn't do such as create queues dynamically with per queue rate limit.
We chose Lua because the queue operations involve modifying more than one Redis data structure and this had to be atomic.
We'll be adding more details on why we built this and how it compares with Celery.. :)