1. When you push a transaction, it goes to peers you are connected with. They then push the transaction to peers they know. In a while, it'll get to every connected peer.
2. Yes, unconfirmed transactions are stored by each peer.
3. The miner can choose what TX goes in the next block! But in reality, all known by miner & unconfirmed transactions that meets the fee criteria will be in the next block. Of course, they have to be valid.
4) If a transaction is never confirmed, you can always just spend the coins again at any time. Sadly, Bitcoin-qt and Blockchain.info does not allow you to do this.
5) Well, it's up to nodes / miners which one goes through.
6) Each block references the previous block. Let's say we have this chain:
Block ACE -> Block 2EF -> Block 8X2
Then, some miner makes Block 72Z referencing 8X2.
Another miner makes Block EEM referencing 8X2.
Now, another miner connected to the first miner then makes Block 36E referencing 72Z.
ACE -> 2EF -> 8X2 -> 72Z -> 36E
ACE -> 2EF -> 8X2 -> EEM
The first chain is longer, and that is accepted. Transactions in EEM will be unconfirmed, and it will be up to the next block to include them.
If this has helped, free feel to tip to firstbits 1GLados