Hi,
1 It sounds not so smart but just FYI, if UseDatabaseQuotaDefaults value is set to true, the mailbox will use the database quota rather then itself's. So you can move those 20% mailboxes to a new database with 3GB quota, 20% to another database with 2.5GB quota and leave the rest of them with 2GB. Steps for your referrence:
Use the EAC to create a mailbox database
Use the EAC to create a local move request
Set-MailboxDatabase db2 -IssueWarningQuota "2.8GB" -ProhibitSendQuota "3GB" -ProhibitSendReceiveQuota "3.5GB"
Get-mailbox -database db2|Set-mailbox -UseDatabaseQuotaDefaults $true
2 Better not, you can set some mailboxes with high limit, 10GB or 20GB.
Cache mode doesn't affect this, if your Outlook client shows different mailbox usage with in OWA, you should believe what OWA shows and recreate the profile.
If an Answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.