The problem is it's not stupid simple, it's actually fairly complicated. Each piece of hardware and its driver must be suspended. The GPU is a particularly tricky one. Its processor must be suspended, and the state saved. In the kernel, the driver must suspend its execution, and likewise save its state. Then on resume, each half has to reload and begin execution again. And if there's any mismatch in the resumed states, the GPU and/or driver crash and probably take the kernel with it.
Now do that for the Wi-Fi, Bluetooth, sound card, USB, disk controller, and every other device.