  Resilient algorithms in high-performance computing are subject to rigorous
non-functional constraints. Resiliency must not increase the runtime, memory
footprint or I/O demands too significantly. We propose a task-based soft error
detection scheme that relies on error criteria per task outcome. They formalise
how ``dubious'' an outcome is, i.e. how likely it contains an error. Our whole
simulation is replicated once, forming two teams of MPI ranks that share their
task results. Thus, ideally each team handles only around half of the workload.
If a task yields large error criteria values, i.e.~is dubious, we compute the
task redundantly and compare the outcomes. Whenever they disagree, the task
result with a lower error likeliness is accepted. We obtain a self-healing,
resilient algorithm which can compensate silent floating-point errors without a
significant performance, I/O or memory footprint penalty. Case studies however
suggest that a careful, domain-specific tailoring of the error criteria remains
essential.
