So we can reuse it for conflicting proofs as well. Note that this removes the space optimization (using the 2 LSB from the pointer to store the status) because conflicting proofs will use a std::shared_ptr<Proof> which can't be cast to uintptr_t.
There is no change in behavior.
Ref T1854.
Depends on D10249.