It is not obvious that CheckSequenceLocksAtTip() function can modify its LockPoints* lp parameter which leads to bugs such as https://github.com/bitcoin/bitcoin/pull/22677#discussion_r762040101 (bug avoided in D12441 by squashing the fix with the commit introducing it)
This is a backport of [[https://github.com/bitcoin/bitcoin/pull/23897 | core#23897]]
Notes:
- that this codebase has a single call site for `CheckSequenceLocksAtTip` in `PreChecks`. This is called via `AcceptToMemoryPool` in `DisconnectedBlockTransactions::updateMempoolForReorg`, so we don't have to deal with the code duplication in Core's `Chainstate::MaybeUpdateMempoolForReorg` function
- this codebase no longer has the `LockPoint::maxInputBlock` computation code (see D15788)