Drop interrupts for reading key state

Edge triggering on PUSH2 was too problematic (cannot trigger
simultaneously on either a rising or a falling edge), so this commit
switches to simply polling for the key's state in the main loop.
Clean up recv buffer overflow prevention