PR description:
> The QueuedBlock struct contains a fValidatedHeaders field that indicates whether we have already validated a header for the requested block. Since headers-first syncing, we only request blocks where the header is already validated, so fValidatedHeaders is always true. Remove it and clean up the logic that uses that field.
>
> Likewise, QueuedBlock contains a hash field that is set to the block hash. Since headers-first syncing, we always have a CBlockIndex, which contains the block hash, so remove the redundant hash field.
>
> Tidy up the logic and rename functions to better indicate what they're doing.
MarkBlockAsInFlight is always called with a non-null pindex. Just get the block hash
from that pindex inside the function.
This is a partial backport of core#22141
https://github.com/bitcoin/bitcoin/pull/22141/commits/85e058b19145b5068f2f71a90c1182bf2a93c473