lock screen not accepting keyboard input

I'm having an issue on i3 where sometimes the lock screen doesn't accept keyboard input after suspend. I am using betterlockscreen, but it also happened with i3lock. Before I switched to Manjaro, I used Windows 10, and there was a similar issue: the screen would not turn on sometimes after suspend, but this happened much more rarely. This makes me think it is a hardware issue.

The specific behaviour that I get after a suspend is that the lock circle doesn't light up when I press keys. Sometimes, it appears to flash rapidly as if many keys are being pressed, even when I don't press anything. When this happens, it speeds up until the flashes are no longer visible. Edit: I should also add that sometimes the ring doesn't show up at all
This is on a laptop, and I end up having to repeatedly open and close the lid until it works, or simply hold the power button to force shutdown. Sometimes I can press Ctrl-Alt-F2 to switch to a terminal, but this works very rarely. Most of time, it's completely unresponsive except for the lid and power button.
Here's the output from journalctl -p 3 -xb

Aug 01 14:32:57 pc kernel: [Firmware Bug]: cpu 0, try to use APIC500>
Aug 01 14:32:57 pc kernel: [Firmware Bug]: cpu 0, failed to setup th>
Aug 01 14:32:57 pc kernel: [Firmware Bug]: cpu 0, try to use APIC500>
Aug 01 14:32:57 pc kernel: [Firmware Bug]: cpu 0, failed to setup th>
Aug 01 14:32:57 pc kernel: do_IRQ: 0.55 No irq handler for vector
Aug 01 14:32:57 pc kernel: do_IRQ: 1.55 No irq handler for vector
Aug 01 14:32:57 pc kernel: do_IRQ: 2.55 No irq handler for vector
Aug 01 14:32:57 pc kernel: do_IRQ: 3.55 No irq handler for vector

The rest of the output from that command is just these messages repeated.
and here's dmesg

Are these lines the issue?
[ 5776.777582] atkbd serio0: Unknown key released (translated set 2, code 0x7c on isa0060/serio0). [ 5776.777589] atkbd serio0: Use 'setkeycodes 7c <keycode>' to make it known.
Any help would be appreciated.

I tried enabling hibernation to see if hibernating instead of suspending would fix the problem. It didn't.