Wouldn’t the blockchain size become a bottleneck if all payments happened on Bitcoin?

I am learning about Bitcoin. I understand that bitcoins are stored on a ledger, and the ledger itself is widely distributed and available to all parties. I also understand that the ledger stores all the previous bitcoin transactions for all the bitcoins.

Suppose in the hypothetical future, everybody moved to bitcoins, with no USD or other fiat currencies. What would be the ledger size in bytes due to all transactions that happened within a year? If you were to record all past transactions from the time bitcoins started, so you could track it, it seems to me it would quickly become a huge network bottleneck, as the ledger is updated over the network. Even the size of the ledger itself might become a big concern over a few years.

Has anybody looked into this aspect of bitcoins?

How do miners avoid transactions getting dropped?

I’m having a problem figuring out how miners solve the following problem:

Let’s say we have 2 miners: M1, M2.

M1 adds transactions A,B,C,D to their block. M2 adds transactions A,B,C to their block. For some reason, transaction D will come to M2 a few seconds after M1 received it.

Now, M2 solves the block and sends this block to everyone. Consequently, M1 throws their block away and starts working on new block.

Next, M1 adds transactions E,F,G to their block, whereas M2 adds D,E,F,G (M2 gets D now) to their block. Now, M1 solves the block first and broadcasts it. Therefore, M2 throws their block away and starts a new one.

In this case, transaction D won’t get in any block! (The problem is caused by network speed which caused the fact that D arrived at M2 a few seconds after it got to M1.)

So, how is this problem handled or avoided?

Can I cancel a transaction that has not been successfully broadcast yet?

In Bitcoin Core, is it possible to cancel a transaction whose status is:

"Status: 0/offline, has not been successfully broadcast yet"

The client hasn’t caught up with the network. It looks like it’s going to do that first, and then send the transaction.

Is that right, or is the transaction already irrevocable?

If I can cancel the transaction, what’s the best way to do that?

I tried abandontransaction but it gives the error:

Transaction not eligible for abandonment (code -5)