This is not a BA-only problem and occurs on many carriers worldwide. The key is vigilant enforcement prior to boarding. The carrier must commit to enforcement and whether it is using its own employees or contractors is irrelevant. There simply must be consequences for gate staff who do not enforce the rules.
As a starting point, there is not enough room on most aircraft to accommodate all "legal" carry-ons. Therefore, there needs to be communication with crew. When the bins are close to full and there are passengers still lined up to board, it is time to cut off anything too large to fit under the seat.
The allowance is irrelevant as this is a matter of geometry.
At the same time, enforcing bag size limits is critical. In order to be fair, this needs to be a binary decision with no favor extended to one passenger over another. The bag either fits comfortably in a sizer or it does not.
Bags which are compliant but for which there is no room should, of course, be checked without fee. Non-compliant bags should be checked but with a tag which has them held at the claim area and not delivered. Passengers who cannot obey the rules ought to pay the full bag fee based on a 0 bag allowance plus a penalty fee. This both discourages the conduct and does not appreciably hold up boarding.
People who wish to argue with staff are free to do so after all passengers are boarded and if there is time. At that point, they are advised to board or not as they choose.
AA has recently undertaken at least the strict enforcement effort at some of its busier locations (no penalty fees !). Unrelenting gate staff treat all passengers the same and I have recently seen several AA CK's (GGL in BA-speak) have their bags pried from them as they board. Not only does this help on the specific flight, but it sends the message that the rules apply to passengers not just the unannointed.