Ah, I made it sound more demanding than it is. There are 12 inputs, but you're not going to be pressing all 12 at once. Two are enter / esc, which are only used for menus and pausing, and four are directional, of which generally no more than two will be happening at once.
That leaves six, if it was a gamepad, it would be four face buttons and two shoulder buttons - the shoulders are for weapon swapping (on A and S by default), and the four face buttons are attack (default Z), dash (left shift), block (X), and a special combo button (left ctrl). In the most extreme example of pressing a bunch of stuff at once, you might be holding weapon and combo for a charge attack, while also dashing, holding a diagonal direction, and then make a weapon switch or tap block. That's a reasonable upper limit of six.
The issue I'm having is that with just three buttons pressed and released at the same time (in this case, it's attack, dash, and block), sometimes one or two of the buttons gets stuck returning true from _keydown - which would stick the weapon in autofire state, for example, and waste the player's ammo.