One interesting case that many don’t know: invalid BALs don’t really "break" parallel execution, they just make clients execute against the wrong state and then reject the block anyway. The crux is rejecting as early as possible.
In this post, I show how nodes catch these adversarial BALs early by repeatedly doing simple feasibility checks (e.g. whether the claimed accesses even fit within the gas budget) before finishing execution, avoiding wasted work that can even exceed the work required to process an honest block: