Well, first off it's Ubuntu he's complaining about. So at least we can pull up the PS/2 code to see what it does, if we want. In this particular case, (assuming GUI) the mouse is a generic driver device that the X server configures. If not in X, then you're looking at something configured by 'curses'.
http://www.kernel.org/
But regardless of UI and OS, if you can choke every application to death with messages whenever it gets input focus, you're not going to be able to do anything when the OS boots.
And in any OS, if the interrupt handling is completely busy handling interrupts (which is a common mode of failure with hardware issues), then unless you have a Tardus, you're not going to be patient enough to wait the 100 years or so for the computer to finish booting up, assuming it doesn't suffer additional failutes in the intervening century, which is likely.
As for 'uncrashable' stacks, hardware problems trump any software, no matter how well written. I've had too many snipe hunts debugging problems that came from bad hardware. A bad router/switch connected to one card can kill the network stack for all network cards on a machine. A USB or IEEE1394 device behaving badly can snuff the USB or firewire stack without much trouble. A bad SCSI device can take down the whole SCSI bus in a heartbeat.
Most hardware is based around strong assumptions about clocks. If 'random' things happen at odd intervals when not expected, the whole model typically breaks down, or manifests strange symptoms. This effect is usually
amplified by software, because normally software is many orders of magnitude more complex than the hardware it's working with.
While a basic mouse might have a couple of mickey (yes, that's the term) counters, a register of bits for buttons, and some microcontoller to send the data up a serial interface to thecomputer in one of the numerous mouse protocols, there are typically a few thousand lines of code between that mouse and the higher level portion of the OS that recognizes 'Mouse'. Not least, a driver to sit on the computer's side of that serial (serial/USB/PS2) connection and listen for interrupts, receive the generated mouse events, decode them, and eventually make events of the motion, button presses and releases. Not to mention 'thunks' up from driver to OS level, interprocess communication, and any 'scheduling' the OS does assuming hundreds of events per second, rather than thousands. Usually there are fixed-length queues at the lower levels of this chain, since dynamically allocating heap isn't an option in driver-world, and it's these that get overflowed when hardware acts badly. The OS, typically on a schedule between process/thread-switches, goes and collects data from these queues and moves them to queues that ARE dynamically allocated. Now, if those input queues are ALWAYS full, which is statistically not expected, the OS will spend a lot of time allocating memory that can't be freed, so virtual memory will soon become involved, and now things are being swapped to the hard drive as the heap constantly grows. From here on, nothing gets serviced as often as it should, and other queues begin to overflow, and more memory is needed to keep up with them... and next thing you know, your Linux box is behaving as badly as a Windows machine.