I think the reason electrs is so slow is the way it works around the TXINDEX requirements without storing the tx in a separate db. Instead it just stores the block height containing the tx. Whenever an address is queried, it needs to request all blocks containing transactions for this address. From the DB size, I guess that esplora is storing the whole tx in their own database.
I humbly note that I wouldn't focus on number of transactions or number of UTXOs *per address* balance for balance and history.
Hopefully, a strong majority of wallet today has one UTXO per address. I would focus on performances in extracting one UTXO or one TXO per address (history). Because that is the structure we all hope to push.
In this contest would be useful to see which Electrum server performs better in giving the balance against the number of public keys it has to watch for. The same for history.
Not sure if the guys at Casa are reading this, but it would be great if the Test Methodology included the cost of query to send transaction from one & multiple addresses to one & multiple addresses using private key(s).