Re: Actually the reason we don't use 'em is...
We're off topic, this is surprise removal of PCIe. Hot un-plug. NVMe is essentially a protocol running on PCIe.
Its ingrained behaviour at many levels, from the PCI protocol (some of this stuff goes waaay back beyond PCIe).
The physical and electrical layers really don't care about surprise removal. You'll do no harm to the cabling or the PHYs.
All of the other layers of PCIe kinda get their knickers twisted with surprise removal. The protocol isn't really designed to deal with stuff going missing. PCIe is essentially memory mapped 'stuff'. PCIe has strict rules about what types of traffic can overtake other types of traffic. If something goes missing lower down in the tree, then the root complex can stall because new transactions are queued behind the transaction that will never complete. So hot unplug can make things fall over in a heap.
Hot plug presents a different set of problems. BIOSes (or is it BIOI?) weren't designed to cope with a shifting memory map. They scan the PCIe infrastructure once during the reset sequence and build a memory map based on what's there. Surprise insertion isn't possible with standard kit, the BIOS won't have allocated space in the memory map for the NVMe drive that you have just hot plugged into your stable running system. BIOS doesn't know about it, it's not in the memory map and the OS running on top doesn't stand a chance - let alone the apps running on the OS.
So there is a new breed of PCIe switches that are capable of faking end points when they're not present.
The switches track transactions to the endpoint and ensure that the root complex always gets a valid completion even if the end point has been unplugged. The root complex won't get valid data and will have to deal with that, but at least the PCIe infrastructure doesn't gum itself up.
These new switches are also capable of faking a device at the bus scan. So if you have a chassis with an NVMe slot, and the slot is empty at power on, the switch will pretend that the slot is filled when the root complex does it's bus scan. So BIOS will map the device into memory and everyone is happy.
Almost. The OS still needs to know that the device is not actually there and the switch needs to know in advance what type of device you'll be plugging in.
So I guess you can see why these new fancy switches aren't cheap. NVMe offers some fantastic advantages over SAS, but building an enterprise system with ain't easy. An enterprise system means dual paths to every disk, ruling out M.2 . It means hot pluggable (and worse hot unpluggable) media. Doing this for NVMe means hardening a protocol that simply wasn't designed to support hot swap, then hardening the BIOS, then the OS and possibly the application too.
It's not impossible, its just one of the things that makes my life fun. :)