The reconsiderblock RPC resets the blocks flags and then calls ActivateBestChain(). But this doesn’t set m_best_header which leaves us in an inconsistent state until something else triggers a change, like connecting a new block. But, until then, getblockchaininfo, for example, reports having less headers than blocks.
I found this while working on a more extensive tests for #29553.