real_aurgathor
#3 is easy. You crash because the system is operating outside its design parameters, and you therefore can make no assumptions about what still works. Crashing is better than risking the corruption of user data.
Example - one rule in many OS designs is that you can’t service a page fault when running above a certain interrupt priority. The reasons why that is might be too involved for this forum. Kernel code must be written to adhere to the rules. So if you do take a fault, the system is already badly broken. The prudent thing to do is to crash before worse things happen. The decision to crash is explicitly coded - as a defensive measure.
Pretty much all operating systems have this sort of feature, whether they’re called bugchecks, stopcodes, kernel panics, or whatever.