How blocks are created and broadcast? Followings are some of my understandings about how bitcoin blockchain works, and want to confirm. Appreciate your comments and thoughts.

In the blockchain, every peer receives both transactions and blocks. A peer will store the transactions they received into a local buffer, keep them ordered, and organize them into blocks. Then, if this peer successfully solves the mathematical puzzle, it will broadcast the block it has. Otherwise, if this peer receives a block, it will update the existing transactions in its buffer according to the transactions in that newly received block. Please correct me if I am wrong.

If the above process is correct, does a peer broadcast only 1 block each time when it solves the mathematical puzzle, or it can broadcast multiple blocks? If a peer can only broadcast 1 block, what if the peer has created multiple blocks since last time it has received or broadcast any block?
It would first have to broadcast the first block. The way it works, the hash of the first block (including the nonce that is needed to solve the puzzle) would included in the second block. So the miner can't create the next block without first solving the puzzle for the first block because that's the only way to get that nonce.

So you can't work on two blocks and broadcast them simultaneously. The blockchain defeats that (that nonce which you can't tell till you have actually solved the block). You can work on two blocks to find the next block faster (although I doubt it's really reasonable since you have two split your hashing power between the workloads).

Now it's possible to broadcast the first block and find the next one  or two in quick succession. This happens. Finding the hash is brute force. It's a game of probability, which is basically just a fancy word for chance.