Celery works, that's been my experience. It's buggy, complicated, and we've had unresolved issues, but it more or less does the job.
The language for building workflows is pretty half-baked, and there have been times when I've wondered whether RQ or raw message passing would be better in my situation. But it's better than any of the alternatives that I've had direct experience with.