There was nothing "broken" about it. It was just non-standard at the time, but the old standards were wrong, like they were on many matters (floats for layout, for example, was a load of shit).
Floats were just supposed to be used to control text floating around images and other inserts. It was never designed as a general-purpose layout mechanism.
Sure, but that's largely because standards bodies chose not to introduce a general purpose layout mechanism despite it being very clear from 1990s websites that the need existed, and instead focused on deprecating layout elements from HTML and persuading developers CSS was the only valid way to do layout.
CSS layout capabilites is a superset of what is possible with presentational HTML, so deprecating presentational HTML is not really the issue. Many of the crazy float hacks was to achieve layouts like expanding sidebars - the so-called "holy grail layout". But this could be cleanly and easily achieved with display:table. So why didn't people use display:table? Because Internet Explorer did not support it. Microsoft disbanded the IE team and did not develop the browser for many years, but the browser still had a big enough market share that developers had to support it.