In the end I found a solution that works for me. Using the pssuspend tool and a quick C# app, I've made a program that pauses Minecraft's thread so it can sit in the background ready to be played at any time, resuming almost instantly. Windows also seems to automatically cache most of the app's memory contents to disk, meaning it uses 0% CPU and only about 200mb of ram while sitting in the background.
Forge load times are still not excellent for me and many other people, even with a decent PC and fast SSD. I'm not an expert on the JVM or how Forge works by any means, but could it be possible to simply load Minecraft into the menu, and then save that state to be reloaded into system memory is started? My install with about 100 mods only consumes around 1.1-1.25GB of RAM at the menu screen, and loading a gig of data off the SSD is surely going to be faster than the entire Forge load process which for me takes around 5 1/2 minutes from clicking Play. And it wouldn't cause unnecessary SSD wear as the same instance could be loaded over and over again as long as no mods are changed. Is this a batshit crazy idea or could it possibly be done with some kind of process isolation program like Docker or Kubernetes. I've already seen some servers being run in Docker containers, with some tests of the client being loaded from it out there. Suspending and resuming the process with Resource Monitor on Windows seems to cause no adverse issues, and I know reloading this data from disk will be much harder but at least this shows it doesn't mind having its execution paused. Please let me know if this is completely ridiculous or possibly worth pursuing.