Gmail (and most other mail services) is returning a 4XX error when a mailbox is full. 4XX messages are temporary errors so a MTA is supposed to retry later when getting these, as opposed to 5XX messages that should be treated as permanent failure triggering no retries and immediate notification.
So here SM is doing the right thing. Retrying until the max retries are reached.
Gmail shouldn't count these as if you were hammering their servers as they ask the sender MTA to retry.
In between some retries, the target user might have cleaned his mailbox after receiving a notification from gmail that it is full and is rejecting messages, so the mail might finally get delivered a bit later.
You can not rely on the error description returned by the MTA alongside the error code. It can be of any form. Therefore only the return code matters.
However, this is a setting that might be of your interrest:
This should tell SM to notify the sender that his mail is still in queue after X attempts.
So he knows the mail he sent did not reached the destination but that there are still attempts at delivering it.
You might set it to something low enough, depending on how you configured the delivery attempts intervals.
With our setting set to 10 and our retry intervals, it should be something like after 3h
Kind regards