[feature] txn specific dynamic rescheduling
This code change is designed to make the network more resilient against unstable or unreliable external networks.
Current Behavior
If an outbound transaction doesn't get sent within 300 blocks, the network assumes it hasn't been sent at all and reschedules it to another vault. The original vault won't sign if its been more than 300 blocks because it knows it will get slashed.
While this works fine in a happy path, unstable external networks means that a validator can sign and broadcast but other nodes won't observe it for minutes or even hours.
New Behavior
Instead of attempting to get 2/3rds of the nodes to observe a transaction within 300 blocks, it just needs 1 node to observe every 300 blocks for the transaction to NOT be rescheduled to another vault. This means that even an unstable network were bifrost daemons are having a hard time reaching consensus, the network gains "confidence" that a vault will/has signed it based on the number of nodes that have been observed.
This mean less rescheduling of tasks and less like that a double spend can happen due to chain flakiness.