We have the same problem with the concurrency limit. We do not use batching, but we have calls coming from a client, as well as multiple threads on a server, that all interact with the same mailbox. Even though the concurrency limit is listed as 4, based upon the errors we've been having, it seems like it's lower than this.
The application we developed is not designed to help us internally, but rather to serve paying Microsoft customers. The throttling limits make their experience worse, so I don't know how it's in Microsoft's interest to have such severe limits.
I also saw that there is a 2,000 call per second limit shared between all tenants for an application. While we are nowhere close to hitting this, our platform is growing fast, and we may hit it at some point. I don't see how this limit can possibly help Microsoft, as it adds a maximum size cap for the number of users an application can be deployed at. If we reach that point, we will need to manage multiple identical applications, which is a pain in the neck for both us and Microsoft paying customers.
I join the development community in requesting that Microsoft rethink their rate limits to make them more friendly to the users who are paying Microsoft money to use their applications.
David