Except you can't feed money into a machine and get perfect code out the other end. "Hire a bunch of people" doesn't solve anything, considering it'd just make it harder to communicate across a single project. If there was a 1 to 1 translation between money and speed, this would be logical. But there isn't. Riot wanted to move the servers to a more centralized location. It took them months because of ludicrous amount of out-of-company communication, updating hilariously outdated tech, and actual implementation time, rather than money. They clearly had the money, and they clearly wanted the change to happen, but it still took time.
DotA2 may be smaller, but it has an EXPONENTIALLY bigger company, and vastly superior tech behind it.
Riot basically has to release League of Legends 2 over the course of several years because of how bad their start was. The game was built for 20,000 players.