They've been piss poor for at least a decade. They were losing even in the managed dedicated server arena by 2010 which was their main product afaik... they were late to the cloud, their managed email was disaster (both exchange and non-exchange version), the support was anything but fanatical...
Stripe isn't cheap even on IC++ pricing by time you add the bare minimum basics - Adyen is much cheaper but a much poorer dev experience since they are big Kafka advocates and unfortunately this leaks that you can't even GET a transaction by id - if you didn't listen to event stream and persist this yourself then its back to CSV reporting. TBH, even though it costs us more, I'm happier working with Stripe vs event stream advocates that want to leak this everywhere... (I like Kafka to be fair, just Adyen takes it too far, their implementation their problem, now let me get a transaction from 3 weeks ago over REST)
Mixing types in an array/list is not remotely stupid. How exactly would you suggest expressing the lack of a value in a series of numbers without None/null? There's your mixed types.
Don't let weird dogma get in the way of practicality.
That is merely a detail of how the typing module has decided to set up convenient aliases. Treated by the language (and likely compilers) as different types.