Excellent summary matthoms! I can definitely confirm though that low reception (be it cellular, wifi, bluetooth, or anything wireless) will kill my battery.
I just want to give a little insight into this:
3. (THEORY)Background tasks are disabled making them constantly try to run but are stopped over and over again, therefore draining the battery. - My battery life has improved since I turned all my tasks on instead of being off.
I thought the same thing for a while, and I think it may have actually worked that way at a time, according to what they have been saying about background apps, your theory _should_ not be true. Here's why (excuse me for not finding my sources on this, but I'm mostly compiling what I've learned about how the OS works, how it appears to work on my phone, and from speaking with developers):
When you install an app (some apps this happens only when the app is launched), it requests from the OS the ability to run in the background. If the OS accepts this requests, the app will provide it with a small portion of the application (basically a small function) that will get executed periodically. This small function is limited in terms of size, execution time, and functionality. I don't know the specifics of the limits, but I know it must be very small and only has something like 25 seconds to run and complete. That means the task might get stuck in a loop or fail to connect to a server, but it will timeout and be killed rather quickly.
When you turn off background tasks for a specific application, the OS simply won't accept the function and will not schedule it to run. So when the application is closed, it is closed.
There are two main exception to this though (that I am aware of):
Media - A media application will run in the background and will be able to buffer audio, change tracks, accept input from media controls, etc. I'm not sure what other background capabilities these apps have, but this does not appear to be heavily exploited except by WhatsApp (though I believe they stopped that at this point). This can, and I believe always does, override any settings that say not to run in the background.
GPS - In order to enable navigation with the screen off, GPS applications are allowed to run continuously in the background. These are the ones that are huge risks to battery life, and this seems to be the "hack" that developers tend to use to get around background task limitations. You'll see a number of apps in the store that claim they require your location, most are for ads, but some are just to enable background privileges. This was more prominent on older released of WP, but it still exists. Prior to 8.1, apps like Waze were able to override being disabled in background tasks. 8.1 seems to have blocked this.
What this means is that the "blocking" only really occurs when you run the app. Every time you run an app that wants to be allowed to run in the background, it'll send that request to the OS. The OS will say no, and the app should be done with it. Unfortunately, it may not always work that way. The app may get told no and keep trying. That will use more CPU to keep looping this unnecessary command. But if you're seeing an increase in battery life with apps allowed vs blocked, that's why: poorly coded apps.
On the contrary, if you have several (well-coded) apps set to run in the background that you don't need, they'll still try to run every time the OS has that app scheduled. That means that, for example, every 30 minutes, you'll have the phone wake up (without turning on the screen) to say "hey guys, time to get up! You have 25 seconds to do what you want!" and the apps just all press the snooze button. Unfortunately, each app has to do this. So while it may be .001s each, if you have 10 apps, that's now 0.01s total, plus OS wake up time, plus apps that actually do something, plus poorly coded apps that may take the whole 25 seconds for no reason.
My opinion: disable apps you don't want running. Let the OS handle it. If it's doing something wrong, you know where the problem is: Microsoft. Then you can file bug reports directly to them because they aren't handling background tasks properly.
Disclaimer: Based mostly on what I've heard/read/seen/tried. No claims of accuracy. Please correct me where I am wrong!
EDIT: Just re-read the API doc for background agents and updated my post. It's 25 seconds that most apps will have to run in the background. Apparently there's a "Resource intensive" background agent that can take up to 10 minutes, but those will not run unless the device is plugged in and charged > 90%.