> add ChainstateManager.GetSnapshot{BaseHeight,BaseBlock}()
>
> For use in later commits.
https://github.com/bitcoin/bitcoin/pull/25740/commits/5ee22cdafd2562bcb8bf0ae6025e4b53c826382d
----
> add Chainstate::HasCoinsViews()
>
> Used in subsequent commits. Also cleans up asserts in
> coins_views-related convenience methods to be more exact.
https://github.com/bitcoin/bitcoin/pull/25740/commits/637a90b973f60555ea4fef4b845ffa7533dcb866
----
> validation: add ChainMan logic for completing UTXO snapshot validation
>
> Trigger completion when a background validation chainstate reaches the
> same height as a UTXO snapshot, and handle cleaning up the chainstate
> on subsequent startup.
https://github.com/bitcoin/bitcoin/pull/25740/commits/d96c59cc5cd2f73f1f55c133c52208671fe75ef3
----
> log: add LoadBlockIndex() message for assumedvalid blocks
>
> I found this useful during unittest debugging.
https://github.com/bitcoin/bitcoin/pull/25740/commits/7300ced9de22e6d1bff816e6538d3370cebe7501
----
> refactor: make MempoolMutex() public
>
> for use in the following unittests.
https://github.com/bitcoin/bitcoin/pull/25740/commits/d70919a88fc90a2662f9a844deb085d03ee7b5d8
----
> test: add snapshot completion unittests
>
> Also adjusts the previous snapshot chainstate init tests
> to account for the fact that the init process is now attempting to
> validate and complete background chainstates whose tip is at the
> snapshot base block. We use a DisconnectTip() hack to preserve the
> nature of the test.
https://github.com/bitcoin/bitcoin/pull/25740/commits/87a1108c81fe0cb15c3860e3a67dc1f43ffec705
----
This completes backport of core#25740
Depends on D14686