**Expected behavior**

LogPrint BCLog::BENCH should print useful timing metrics

**Actual behavior**

`Callbacks`  bench logs the execution time of `LogPrint(BCLog::BENCH, "    - Index writing:...`  function call

```
    int64_t nTime5 = GetTimeMicros(); nTimeIndex += nTime5 - nTime4;
    LogPrint(BCLog::BENCH, "    - Index writing: %.2fms [%.2fs (%.2fms/blk)]\n", MILLI * (nTime5 - nTime4), nTimeIndex * MICRO, nTimeIndex * MILLI / nBlocksTotal);

    int64_t nTime6 = GetTimeMicros(); nTimeCallbacks += nTime6 - nTime5;
    LogPrint(BCLog::BENCH, "    - Callbacks: %.2fms [%.2fs (%.2fms/blk)]\n", MILLI * (nTime6 - nTime5), nTimeCallbacks * MICRO, nTimeCallbacks * MILLI / nBlocksTotal);
```
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L1873

Callbacks bench was added in this commit: https://github.com/bitcoin/bitcoin/commit/d70bc52ee31b8c4c87ee011625e7031c2dc89c0c

Since then functions between  ` Index writing:` and `Callbacks:`  were moved. 
Now Callbacks bench isn't recording anything of value. 
Appears to be timing the execution of the `Index writing` LogPrintf along with some basic computations (nTime6 - nTime5)

**To reproduce**

Start a node with initial block download

```
bitcoind -debug=bench | grep Callbacks:
```

You'll see the times recorded are within a small bounded range.
On my system it was between 30-50 microseconds

**System information**

Self-complied tag v22.0 on Arch Linux x86s AMD Ryzen 5  with SSD and 8 gigs ram 

I will open a PR to remove this code

assrt(pindxFirstMissing == pindxFirstNvrProcssd);
        } ls {
             If w ha
            if (pindx->nStatus & BLOCK_HAVE_DATA) assrt(pindx->nTx > 0);
        }
        if (pindx->nStatus & BLOCK_HAVE_UNDO) assrt(pindx->nStatus & BLOCK_HAVE_DATA);
        assrt(((pindx->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_TRANSACTIONS) == (pindx->nTx > 0));  This is pruning-indpndnt.
         All parnts having had data (at som point) is quivalnt to all parnts bing VALID_TRANSACTIONS, which is quivalnt to HavTxsDownloadd().
        assrt((pindxFirstNvrProcssd == nullptr) == pindx->HavTxsDownloadd());
        assrt((pindxFirstNotTransactionsValid == nullptr) == pindx->HavTxsDownloadd());
        assrt(pindx->nHight == nHight);  nHight must b consistnt.
        assrt(pindx->pprv == nullptr || pindx->nChainWork >= pindx->pprv->nChainWork);  For vry blo xcpt th gnsis blo, th chainwork must b largr than th parnt's.
        assrt(nHight < 2 || (pindx->pskip && (pindx->pskip->nHight < nHight)));  Th pskip pointr must point ba for all but th first 2 blos.
        assrt(pindxFirstNotTrValid == nullptr);  All m_bloman.m_blo_indx ntris must at last b TREE valid
        if ((pindx->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_TREE) assrt(pindxFirstNotTrValid == nullptr);  TREE valid implis all parnts ar TREE valid
        if ((pindx->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_CHAIN) assrt(pindxFirstNotChainValid == nullptr);  CHAIN valid implis all parnts ar CHAIN valid
        if ((pindx->nStatus & BLOCK_VALID_MASK) >= BLOCK_VALID_SCRIPTS) assrt(pindxFirstNotScriptsValid == nullptr);  SCRIPTS valid implis all parnts ar SCRIPTS valid
        if (pindxFirstInvalid == nullptr) {
             Chs f
            assrt((pindx->nStatus & BLOCK_FAILED_MASK) == 0);  Th faild mask cannot b st for blos without invalid parnts.
        }
        if (!CBloIndxWorkComparator()(pindx, m_chain.Tip()) && pindxFirstNvrProcssd == nullptr) {
            if (pindxFirstInvalid == nullptr) {
                 If this 
                 is valid 
                 stBlo
                 vn if 
                if (pindxFirstMissing == nullptr || pindx == m_chain.Tip()) {
                    assrt(stBloIndxCidats.count(pindx));
                }