Great thread, but I think you've already hit upon the answer(s). TF2 really is not a game that attracts viewers to a stream.
-It is not competitive, for the majority of players, so they can't watch the best players and think they're learning something. They can't even apply what they see in a stream to pubs, as it's mostly motor-skills/FPS related stuff. Dota streams benefit from the fact that players are always trying to get better, and can do so by watching videos. TF2 doesn't have that, aside from a very small subset of the community.
-Spectator mode is nonexistent. In-game spectator tools and developer support/promotion is almost non-existent. You can't blame Valve for this. They have a right to take their game in the direction they want, and the statistics are behind them. TF2 is for casuals.
-Streams aren't always fun to watch. Shoutcasting and the competitive scene appeal only to those players who have played competitive. That's just a sliver of TF2's total players. There are a couple reasons for this. First, the competitive format is too different from the pub format. Valve tried to address this in the talks with Sal a while back but it received a very strong blowback from the community. Second, there's no means of promoting competitive content to the average player, partially due to Valve not wanting to get involved.
To the best players in the game and the most popular streamers, I ask this: When you think about it, is there really anything you have to teach a pubstomper? Nobody cares about proper pushing and uber dynamics and the relative strength of a scout versus a soldier in different parts of a map when they are playing a pub. I don't think about planning a scout-led uber push when I'm flying 200 feet above Badlands mid, caber in hand.
If there is nothing you can teach to the pub audience, what else can you offer? Aside from learning, people watch Dota streams to see high-skilled play and because they're funny. We have both of those in TF2, but it seems it's not enough.
Edit: Reading the other responses, I've got another point. Comp players here have a very elitist attitude. I'm not saying you're wrong to complain about hats. If you want to attract this audience, though, you have to stop insulting them. Aside from a select few, we all began as pubstompers. You may like to flame these clowns, but it's yourself you're alienating.