=>
Receive a new block, update your utxo db and mempool
=>
Select the top 1Mb (not countig witness data) transactions from your mempool and create a block. Add the coinbase transaction funding your own address with the current block reward + fees from the selected transactions (fee = sum of the value of all the inputs minus the sum of the value of all the outputs)
There are two types of mining rewards, the coinbase reward is the one that gives miners 50BTC, 25BTC, 12.5BTC etc, and then there is the transaction fee reward, where a miner collects the transaction fee of all the transactions included in his block. Miners almost always include a set of transactions in their newly mined block.
Rarely, they run out of time to construct an unconfirmed transaction set and so they broadcast an empty block without one, and just a coinbase reward. You see this happen when a miner finds a block before they finish making the transaction set. The reason they broadcast an empty block instead of finishing construction is so that they can be the first to broadcast a block and thus get the mining reward. Miners obviously don't want another miner to broadcast their own block first, when they themselves already have a solved block.
create the block header (including the hash of the previous's block header, the root of the merkle tree of all tx's selected in the previous step, the nonce and some extra data)
The block header is just a field inside the data structure of a block, and the block header is a data structure itself with fields that @mocacinno mentioned.
Iterate over the nonce untill you find a block header whose sha256d hash is under the current target OR untill a new valid block is received by your node (if you receive a new valid block, go back to the second step of this list)
This is the step "mine blockchain for reward" in your flowchart.
The verification check that a block's SHA256d is under the target corresponds to the step "is hash legit".
Basically the "download new blockchain ledger" step runs in parallel to the other steps, and an update of the ledger (by receiving new transactions) causes the flowchart to halt and go back to "mine blockchain for reward".