Simplified entry condition handling by raising exceptions
Restructured tasks to make use of atomic transactions
Use celery task id to keep track of running background tasks