If my understanding is not correct, would you mind correcting it?
Yes. It was just going to take a while to get it typed up, so I submitted my initial response while I was typing the following:
As far as I understand it, from a high-level point of view, here's the chain of event:
1- Transaction request between A and B created
2- Transaction broadcast to full nodes for verification
3- If transaction confirmed, it is added to the pool of pending transactions to be added to the next block
4- Miners work on finding a suitable hash for the block candidate
5- First miner to find proper combination broadcasts it to other miners for verification and approval
6- Miner who found the block's hash is awarded, block gets added.
The transaction sender (A) creates the transaction and sends it to the nodes he is connected to. Those nodes validate the transaction. If it is invalid, they ignore it and it doesn't get any farther. If it is valid, then they add it to their own mempool, and then relay it to the nodes that they are connected to. Those then validate the transaction. If it is invalid, they ignore it and it doesn't get any farther. If it is valid, then they add it to their own mempool, and then relay it to the nodes that they are connected to. And so on.
Eventually, nearly all the nodes on the network will have heard about the transaction from one or more of the peers they are connected to.
Some of the connected nodes that hear about the transaction are solo-miners or mining pools. They also validate the transaction. If it is invalid, they ignore it and it doesn't get any farther. If it is valid, then they add it to their own mempool, and then relay it to the nodes that they are connected to. Just like any other node.
At that time the transaction is "unconfirmed" because it is not yet in the blockchain.
Meanwhile, Solo-miners and mining pools select unconfirmed transactions from their own mempool for the blocks that they are building. After choosing the set of transactions that will maximize their revenue (choosing the transactions with the highest fee per weight unit), they create the coinbase transaction (also called the generation transaction). This is the special transaction that pays them their block reward, and is included with the list of transactions in their block.
Next, they build a block header for the block of transactions.
If they are a solo-miner, then they begin hashing that block header looking for the nonce that will satisfy the difficulty target. If they are a mining pool, then they send the block headers out to the pool participants so that they can begin hashing that block header looking for the nonce that will satisfy the difficulty target.
When a suitable block nonce is found that satisfies the target, then the miner adds the block to their own copy of the blockchain and sends it to all the peers that they are connected to. Each of those nodes will validate the block, and if it is invalid they will ignore it and it won't get any farther. If it is valid, then they will add it to their own blockchain and will relay it the nodes that they are connected to. Each of those nodes will validate the block, and if it is invalid they will ignore it and it won't get any farther. If it is valid, then they will add it to their own blockchain and will relay it the nodes that they are connected to. And so on.
If the transaction that A sent is one of the transactions that are included in the block, then as each node on the network adds the block to their own copy of the blockchain, they will see that the transaction has 1 confirmation. That's what "1 confirmation" means, it means that the transaction IS IN the block most recently added to the chain.
Each new block added to the chain after that is another confirmation of the transaction. So, if two more blocks of transactions have been added to the blockchain AFTER the block that contains the transaction, then the transaction has "3 confirmations".
Since the block reward transaction was included by the miner when he built his block, his reward immediately has 1 confirmation as soon as the block is completed and shared. Since there is a possibility that the block could become orphaned, the block reward is not allowed to be spent until it has more than 100 confirmations.
None of this requires 51% of anything, but if you control more hash power than the combined rest of the world (meaning you control more than 50% of the hash power), then you will be able to find the nonce that satisfies the difficulty target faster than the combined rest of the world. This means that you will always be able to create a longer chain than the rest of the world, so you can orphan any block you want to. This gives you full control over which valid transactions are and are not included in the blockchain.
If transactions are approved at the mining level,
They are not.
Every transaction is checked for validity by EVERY node on the system (even nodes that are NOT mining). An invalid transaction won't be relayed at all, and therefore won't even show up as "unconfirmed".
Transactions are "confirmed" at the mining level. Confirmed is an indication that the transaction is now in the blockchain. Because of the proof-of-work, as more blocks are added to the chain, the user can feel more confident that everyone in the system is using the same set of blocks.
how does finding the proper hash combination verify that Person A indeed has 50 bitcoin on his account?
It does not. There are no accounts. A transaction refers to specific previously received payments. Those previously received payments are called "unspent transaction outputs" (UTXO). By referencing them, the transaction "Spends" those outputs, and then creates new outputs. If the sum of the value of the new outputs is greater than the sum of the value of the outputs being spent, then the transaction is invalid.
Finding the proper hash just provides a proof-of-work to build confidence that everyone is using the same set of blocks in their chain.