What if you have two drivers, a primary and an auxilary. When you want to update the driver, simply update the auxilary, switch everything off the primary to the auxilary. Then the next time the system restarts, it updates the primary and switches everything back. This would take up addtional space and probably eat some speed up, but it would result in a more stable OS, if the new driver resulted in errors it would just move everything back to the primary instead of crashing. Minimal system down time as you could probably just keep swapping back and forth on each update.