Hey @gcarlyle22, I appreciate you may have had some issues, and are quite frustrated with the experience, but I would like to address some of the points you mention since I believe they can be solved to an extent.
I'm not sure where this comes from. OctoPi itself (well, mjpg_streamer) will work on a wide range of webcams, and that's only a small fraction, since it depends on people reporting that they work. I also know many people use Raspberry Pi cameras that work just fine. I wonder why you suggest 'AstroPrint' cameras, which is not connected to the OctoPrint project other than using a bit of its code themselves, in their project.
There are several plugin solutions for this, that make this secure. OctoPrint Anywhere (now bundled with TSD), NGROK, OctoPrint Everywhere, probably more I can't remember just now. Just don't do it unsecured, please!
This is correct, and due to the way 3D printers work, it cannot resume even if it tried to recover itself, due to multiple buffers on the printer side making it impossible to know where the printer is when the power goes out. Not OctoPrint's fault, but a limitation of any USB host software.
It can, but the firmware must be capable of reporting the data. In Marlin FW, this means enabling 'Host Action Commands' and 'Host Prompt Support'. Otherwise the host (OctoPrint) cannot know.
Please, ask for help if you need it. There are loads of helpful people here that would reply, more on the discord server, we solve loads of issues daily. We can't help unless you ask, and you would get answers to your questions.