Split the handling of soft and hard failures into separate functions. No functional changes intended.
Move the code related to task updates from workers to `worker_task_updates.go`. It's going to get more complex with the blocklisting in there; this prepares for that. No functional changes.