What you're talking about is the concurrency "issue". It was a bad designed app.To code Smart Contract on Cardano you have to learn the "Cardano way" of building Smart Contracts. It's like multi-core systems : you have to learn how to take advantages of the several cores.
On Ethereum, Solidity has access to the global state of the blockchain and it's very hard do create secure program with it. Cardano's language Plutus has only access to UTXOs ( bitcoin way to manage account) and store a local state in it. It's really functional programming applied to the blockchain space. The language is functional ( Haskell subset ) and the ledger too. One advantage of this design is that fees are deterministic. For a given transaction input you will have exactly the same fees.
> They finally submitted and confirmed rollups were better
Again, it's a lie : Can you provide a link to an official statement made by IOHK about this ? No, of course : Input endorsers is the official path for scaling, it's not a surprise : they are part of the first 2016 Ouroboros paper. There are some experiments on Rollups because it can have use cases, but there are no official statement about using Rollups.