Ah, task escalation and error boundaries are not supported at the moment. For now, the way to do this would be to use an interrupting message boundary event on the task and route the flow back to the first task.
Technically speaking you can’t rollback to something that’s already completed and was performed in another transaction (which is the case if these are user tasks; for service tasks by default, Camunda will attempt to perform as much as possible in the same transaction unless you demarcate the transaction boundaries by using asyncBefore/After).
Instead, you move the process to that point as I pointed out, which creates a new instance of the task you already performed before. Which makes sense also because there’s no trivial way to rollback any actions performed in the meantime.
If compensation for what was done before is really what you’re after, take a look at the saga pattern, which you can implement using BPMN’s compensation boundary events. There’s a very good description of that up here: https://blog.bernd-ruecker.com/saga-how-to-implement-complex-business-transactions-without-two-phase-commit-e00aa41a1b1b
Not quite sure what you mean by random ordering, because at the moment you have the tasks in sequence.