Now this is water on my mill.
I have never worked for an IT outsourcing company, and your post just reminds me what's wrong with that industry. I have always maintained that any company who has enough work to employ at least one person full time is better off hiring that full time person than outsourcing their IT. And your post is proof of my thinking. Which will also answer your question.
When you work for an internal IT role, there is no conflict of interest. You work for a company, and IT is there to make this happen, as an internal service provider. You do your very best to make it happen, because your bonus depends on it, if the company pays a bonus. And if they don't, you still make it happen, because as a company it helps to achieve the primary goal: pay your salary.
When you work for an IT outsourcing company, all of this changes. The primary interest of that company is not to help their customers succeed, it's to make money. As much as possible. Which inevitably leads to the situations you have described.
This is not to say that there aren't resource issues in other companies. In fact, IT is usually one of the first to get squeezed. But, you still have the satisfaction of making it happen.
I have worked in IT in one way or another for the last 10 years of my career. And I find it very satisfying that with 10 minutes of my time, well applied, I can save somebody's day or week, or make things possible that otherwise would have been insurmountable for anybody else in the company. When you work in IT, you wield great power, and with that comes great responsibility. Use it with humility and you will be a happy man. Get the balance wrong, and it will kill you (mentally).
At the same time you are making a very good case (inadvertently) for starting an IT outsourcing company that actually cares about their customers more than the money they make from them.