Using karabiner to address the issue of double pressing
For your special case I would suggest you use Karabiner Elements. and edit its ~/.config/karabiner/karabiner.json this way (added to/after "rules"):

EDIT / fail-safe version:
 – Copy/paste the code below into TextEdit and "Save as..." 
WhateverNameYouLike.json
 – Next manually move a copy to ~/.config/karabiner/assets/complex_modifications/
 – Finally import from KE: tab "Complex Modifications", buttons [+ Add rule] &amp; [+ Enable]

{ "title": "Keep solitary letter/key ''b'' from multiple press!",
  "rules": [
     { "description": "Keep 'b' from being pressed twice",
       "manipulators": [
        { "from": { "key_code": "b" },
          "parameters": {"basic.to_if_held_down_threshold_milliseconds": 10},
          "to_if_held_down":[
                 { "key_code": "b",
                   "repeat": false }],
          "type": "basic"
                }  
            ]
        }
    ]    
}


As you can see letter "b" is NOT re-mapped but in "to_if_held_down" kept from being repeated by "repeat": false; obviously letter 'b' may be substituted with any other failing letter.
(The threshold is defined to a minimal 1/100 second, so you won't notice any difference ...)

Please report if this code does for you what it's supposed to do.
[EDIT:] This solution works for the user in (ex-) trouble.
(I had to simulate the situation by testing in an app that does repeat keys if held down – but actually yours may be a non-solvable mechanical problem …)

Note:
This method, though, may not be advisable/applicable, if the holding-down of a key (e.g.: "a") in an app opens a small window above it offering (e.g.:) "ä" / "å" / "ậ" or similar choices – IF you need those special characters.
This behaviour would be prevented by "repeat": false.
But then:
You can activate "Show Keyboard &amp; Character Viewers in menu bar" in System Preferences and get them from the menu bar...