So the question seems to be, how has Python gotten the top spot in popularity with so many drawbacks?
That isn't a simple question to answer. How things become popular in general isn't: it's not all that predictable. That's been witnessed also with music, movie genres, fashion, and so on. Sure once a trend is there, many can piggy-back on it - while it lasts. But how it all started? There's no real magic recipe.
As I mentioned, I find interesting that there seems to be a parallel in how both Python and AI have become very popular in the last decade or so, and I'd venture that there are similar causes. And as a matter of fact, both are related as Python is used quite a bit in AI. And while this is not a *cause* per se, as I said, it's interesting how in both cases, proponents are just trying to push it very hard, trying to find more applications for the tools instead of trying to make/use tools fit for a purpose. There you have a typical marketing attitude, and not an engineering one. That's probably part of the answer. There surely was, and is, a need for a general-purpose interpreted language, and I admit most of them out there are nasty one way or another...
As I mentioned once, I doubt Python's author expected it to get so much traction when he designed the language. Python comes from the ABC language
https://en.wikipedia.org/wiki/ABC_(programming_language) , designed earlier in the same institute. ABC, IMHO, was pretty horrible, and Python's syntax directly comes from it.
The idea behind significant whitespace, I guess, is that proper code formatting makes it more readable, and using "proper" formatting in a way such that improper formatting would mean broken code is certainly one way of enforcing it. Now this doesn't seem very practical (to say it gently) and is way too dangerous. Do you prefer some indentation mistake once in a while, making the code a bit less elegant, but still functional, or do you prefer the code to break in horrible ways in such a case? Yeah. Another issue is that indentation is, was, and will always be a "moving target". There are multiple ways of indenting code, which makes the Python approach even more horrible. So OK, the Python interpreter will try to spot indentation issues in your code - when they look likely bogus - but it can't be fail-safe.