Good news, I have gotten it to work now! I probably should've ran the Repair Tool from the start, but I was almost confident it could not fix my problem.. guess I was wrong then. Give it a try!
And this is good advice: try the repair tool if something goes wrong before anything else.
With 4.x, the client no longer updates in the same way it did before. There is no Updater.app that goes with specific patches anymore. Instead, the launcher does all the work. It's a side effect of their ability to stream content down to the client while you play on patch day. The launcher and client themselves (the downloaders) need to both be able to update the data in your install now, and the Updater.app is pretty useless and removed as a result.
The nice thing about having a torrent represent the state of the client you want users to be in is this: Torrents contain hashes of the data, so you can detect files that were corrupted during download. You can even figure out which chunks within a file need to be replaced due to corruption. So your repair tool simply becomes something that gets the torrent for the client version you have, checks the hashes, and then re-downloads any bad chunks.
The interesting thing is that the repair tool only seems to apply to the "core" of the game. But that's okay since the Launcher seems to be able to repair missing pieces of your world data. So in a way, Blizzard has decoupled the client from the world data, which is good. The Launcher just always gets the latest world data if it is available, even if it is for a future patch, via some master torrent that gets updated periodically with new content. On patch day, the "tools" get updated (Launcher, Client, etc) which includes all the bugfixes/etc.
It should really help reduce the need to use mirrors on patch day, and the repair tool & launcher is friendly to those who are bandwidth limited by only downloading exactly what is needed to get you on track. With 4.0.3 and 4.0.3a, I've never seen such a smooth patch day. Even with everyone logging in to see what changed, I had no problems getting the patch data in a timely manner.
The downside is that we all have to relearn what to do when the patching doesn't work right.