Add support for better task cleanup and support re-enqueueing tasks who'se launch failed