Yes, there is a buckets limit for each project, 100 by default. Usually you need only one bucket and separate your customers with prefixes and using a different encryption key for each of them. This way the customer will see only their objects (decrypted with their encryption phrase).
There is no such a feature to set a limit per bucket, you can limit a bandwidth usage per project per month (on paid account only).
There is no such a feature to set a speed limit, you need to implement this in your application/dynamic website/local proxy or use a CDN providers with S3-Compatible Gateway.
There is no such a feature as a quota alert, you need to implement this in your application/dynamic website. Perhaps this feature is exist on CDN providers.
You cannot set a DNS hostname for non public bucket (as soon as it will be broadcasted across global DNS servers it will become public). But you again can do this in your dynamic website or using a local proxy, hosted on this domain.