Why is it so hard for universities to hire in applied CS? Because you are not just competing against other universities, you are competing against industrial labs. Besides the usual arguments of typically hire base salary and no required teaching or grants, a place like Facebook or Google can give you access to data that you just can't get a university and your research will have a real-world impact faster than basic academic research.
So why be a professor? Money isn't as big an issue as you expect, professors can consult, own significant portions of their IP (depending on the school) and can start companies. Teaching is time-consuming but extremely rewarding. To me there are two aspects that make being a professor the best job in the world.
- Freedom to set your own research agenda: Very few labs these days give you the freedom to choose your own research topics and even fewer will reward you for that. In academics we expect you to develop your own research areas and succeed in them.
- Working with students: The relationship between advisor and advisee is not unlike a parent and child. And there's no better feeling than watching them succeed. You can often get summer interns and postdocs in industry but it just isn't the same.