You are almost there! But it's a bit complicated to give a short simple answer here.
You should try to get hold of some simple (or more advanced as you can deal with them!) books that explain UNIX/Linux.
Different releases of Linux handle security things slightly differently, and I don't know everything about everything!
You need to understand
1) root can do anything - it overwrites any and all permissions - you should NOT ever run as root unless you NEED to do so for maintainence, and perhaps new program installation running with 'root permissions' all the time is how you CAN get malware into a system!
2) "it would seem that no one except root would have permission to create a file or directory. However, I can create anything I want in there. This is the first thing that shouldn't be."
When running some tasks for which the normal level user has no permissions, the job is passed to root (or other 'users' such as 'apache'), which is why you can put stuff in that directory when a normal user - this is how it is SUPPOSED to work, so your basic 'common sense' idea is not how the system really works! :-)
3) You may be lucky to get another answer that gets it right on, but Linux tends to need an 'experienced' user :-) the learning curve is often very steep. I'm still learning - been around things for some decades... :-)
3) I would NOT recommend the 'just a "chmod 666 /var/www/html" approach' - this is called 'hacking around' - the apache application will setup what directories and files and permissions and ownerships it needs to work correctly, 'blindly mucking about' with permissions and ownerships may even make more problems than it solves! Perhaps you might consider saving any files you want to keep, and uninstalling apache, then deleting any directories it did not remove, then reinstalling the application from start again. This is a more 'correct' way to handle the situation.
4) Make sure that any users you want to do things with apache are correctly set up with the correct groups, etc - this stuff should be in the documentation for apache - often a bit hard to wade thru I know, but those who want to just be a 'mindless user', are probably better off sticking with MS type products, rather than using open source stuff like Linux, as it is meant for 'experienced users', rather than just 'mindless users' unfortunately. You DO however have almost infinite flexibility to set up things, but with that capability comes the ability to do much damage if you don't 'get it right'!
~~~~~~~~~~~~~
Response to "Added":
Useful debugging info!
OK now check SELinux - have you got the permissions set correctly there? If you can't work that out easily, then try to turn it off, see what happens. Linux (what distro?) and apache may not be interacting properly with SELinux, something may not have been set up correctly... I'm not an expert on everything yet. :-)