Failures 2.0 - unique ids for failures

This will lay the groundwork for changing the failure backend methods that currently accept positional indexes instead of actual ids, which is up next...