The local proof registration status is updated at each block, which
means that once the proof is known it triggers an already registered
error for each subsequent block (unless it turns invalid).
This is the intended registration behavior, but that's weird from the
status point of view. This leads to confusing states in the
getavalancheinfo output where e.g. an immature proof will show as
duplicated after the first block.
This diff fixes this by maintaining a proper registration status when
the proof is marked as duplicated.
Depends on D14581.