Well I can tell you that the OP doesn't know how to code what so ever. This entire post is one big hyperbole. The last time the server was down is when the servers were getting DDOS'd by PoodleCorp. Other than that, the servers haven't been shut down in over a year. There isn't a champ disabled once a week, it's maybe once a month. The reason for that is, while the PBE does the best it can, nothing can compare you for stress tests.
Moreover, completely redoing all of the source code for League would take years to accomplish, and by the time it was done, the code would be outdated.
Dota 2 has its own problems, the main difference between the two games, is the number of times that each game updates. Since League updates every two weeks and Dota updates much less frequently, it makes sense that League is naturally going to have more problems. When you start coding, you realize that there are always unintended consequences. Often times, this results in bugs, but just because you can see a bug, doesn't mean that you even know exactly where in the source code this bug is.
I've also played League on many different rigs, and there are known bug within the client, hence why they are making a new one (hence why I'm not sure why you wrote this post) but most of the time, it's the player's fault. Usually this is either due to 3rd party programs (curse voice, custom skins etc) or due to an improper install. You also have to take into account, is the computer's drivers up to date? Are there any updates to the OS? See I had a problem where my game kept on crashing, through player support, I realized that my graphic's card drivers were installed incorrectly, since then I haven't had any bugs that caused my client to crash.
I find it funny how you claim there hasn't been any bug fixing, and then compare league to Dota in terms of bugs. With any game, there are always going to be bugs. Every game has bugs, and just to single out league isn't fair. I've been playing League 3-5 times a week for 5 years now, I can count on one hand how many major bugs I've found. I'm not talking about improper voice lines or particle effects (which 90 percent of the boards are complaining about) I'm talking about actual game breaking bugs. For instance, there was a game in the EU LCS recently where as an Elise was Repelling Trundle placed his pillar and that knocked Elise off of the map. But Dota 2 has a well known history of major bugs. CSGO has a shit ton of bugs, talk about hitbox bugs.
And after the years of me playing it, it has shown that the focus is more skins, and champions instead of perfecting what is already out there.
You act as if if Riot makes skins that means they don't care about fixing their code. The problem what that strawman is that the tow aren't mutually exclusive. In fact, skins are much easier to create than finding bus in code that's 10 years old. You can be a self taught artist and maybe make a skin for League (I can do it in photoshop for example) whereas gameing source code takes years to learn, and the field is constantly changing. You also seem to forget, that Riot games is a business, their goal is to make money. If Riot doesn't make skins, they can't pay their engineers to fix their game.
Things such as client bug splats, many problems with picking a simple champion or banning one in champion select, or even having level up bugs with the ult, and the countless champion bugs which were filled throughout the game. There simply is no excuse for why this is, with a budget such as theirs, and many years to work on simple problems, the client looks trash and works at the bare minimum for anyone to be able to even launch. Why does Riot feel the needs to have such harsh punishments for their wrong doing, it's easily able to be known if a player is abusing a system, why not add it so there is no lp loss, if a player crashes in champion select once or twice in a month, or if their client crashes once also.
Bug splats are extremely rare. And again, they are redoing the client, this has been known for a number of months now, ever since the preseason in fact. Bugs leveling up ult? I haven't heard of that. Countless champion bugs throughout the game, that's another massive stawman that you are making here.
Moreover, the problem isn't about the budget. The problem has to do with manpower. Writing source code for a game takes years to be even competent at. The field of computer science is constantly changing. You have to remember, League has to service Windows Vista, Windows, 7, Windows 8.1, Windows 10, Mac OS Mountain Lion, all the way through Mac OS X. Now they are trying to make it work for Linux. All three of these operating systems (Linux, Mac, and Windows) each require a different programming language. You can't plug in Windows code and expect it to work in a Mac. After you make a client that works for all of those people, you have to find a way for all of these different machines to communicate with each other. And this is one of the things that separates League from Dota (which doesn't support anything except for windows).
If your client is constantly crashing in champ select, then it is your fault. There are a number of reasons for this, including outdated drivers, updates that need to be made to the OS. It could be that your client was installed incorrectly. Also, it actually hard to determine if a client has crashed or if the user has just left the game. If you AFK or if the client freezes, it all looks the same to the server.
It's counterpart "Dota 2", has such a good client, simple, fully working, and almost nowhere near the amount of problems as League of legends has, on a daily bases.
I've had the exact opposite experience. I've had more client crashes with the Dota client than the 5 (almost 6 years) of playing League. It is your rig, if you are having consistent problems, send in a support ticket.
with many players facing huge amounts of lag, which has nothing to do with their internet.
Again, hate to break it to you, but it's your internet. Most likely, you are experiencing massive packet loss. This link here will help you rule out this possibility. I too watch a lot of streams, and most of them complain about "lag" when in fact, lag was minimal (maybe plus or minus 5 ms). Most pros still miss the days when the servers were back in California and that's where a lot of pros used to play. Now they have to deal with 40-50 ping, but more players are able to have better ping.
The TLDR of this response, you really don't know what you're talking about. Fixing all of the bugs would take years, and by the time that project would be completed, the code would be outdated. Riot is already making another Client, and most of the problems you complained about in your post, are in fact your fault. Most likely, you are missing a driver/the client was installed incorrectly, and as far as the internet goes, you're probably experiencing packet loss, and that's easily fixed.