How does the Linux kernel handle hardware interrupts, and why is it important to keep the interrupt handler execution time minimal?