I think celery overall is pretty stable, and if you are careful about your configurations (exponential wait between retries, timeouts, good logging and monitoring), it should be a very reliable part of your architecture. I'd used celery beat a long time back on production, but for a medium scale app.
Arguments for celery vs cron for me would be,
- More encapsulation of the application.
- Much easier to handle locking, ie, don't run a task if a previous instance of the task is running.
- Support for retry. You can handle retries much more gracefully with celery. With cron, you have to DIY.
- Better tools for monitoring, etc. NewRelic supports celery pretty well.