I have an brew in primary for just over two weeks now (OG of 1.054) that I'll be pulling a sample from today to get a reading on, and taste... Chances are, though, it will run until this weekend before it gets bottled up.
I'm finding that my brews with an OG of under 1.060 are good with a 2-3 week primary, then 3 week carbonating/bottle conditioning time frame. 1.060-1.080 are usually in the 3-4 week primary range (maybe longer depends on how they taste). Over 1.080 and all bets are off. I have one that's aging on some oak chips that was brewed on 12/20/10. It was in primary for a month, and has been on oak ever since then... I sampled it late last week, and it's getting closer to my target flavor profile. Chances are, I'll prime and bottle it up this weekend too. I brewed on Sunday, hitting 1.072 for the OG... I plan on letting that one ride for two weeks before pulling a sample from it. Chances are, it will go 3-4 weeks before it gets primed and bottled up.
One way to avoid off flavors, I'm finding, is to let the wort ferment in the right temperature range (I have no control right now, but the weather is helping me out) and to NOT have really violent/active fermentation going on during the first few days to a week. The last brew I made that took off like a rocket, blowing foam through the airlock, needed time to combat the off flavors such activity produced. I did use a starter, and used a 6 gallon carboy (luckily) but it still shot foam through the airlock in under 7 hours. In the brews since then, I've done what I could to ensure more relaxed fermentation rates. More of a 'slow and steady' approach. I'm also typically making my starters about two days before brew day, so that the high activity inside the starter is done, with a nice sized yeast cake on the bottom. I used that method for yesterday's brew and it's going nicely right now. It was active (nice krausen inside the fermenter) between 7 and 10 hours after pitching the yeast. I did aerate this wort better (used the same home-made tool I used in the mead batches to aerate) and used a little nutrient (wanted to ensure happy yeast with the higher OG of the wort)... Stressing the yeast less makes for better beer... Learning what works for YOU to get there, makes you a happier brewer.
I'm making ales right now, styles from the British Isles... Which, I believe, are a bit more forgiving than some of the other styles. I don't need to maintain ultra tight temperature ranges, and such. I'm also picking yeast that is happy within the temperature ranges I can keep them at. I do see myself making some lager's at a point in the future. But that will be once I've moved to a larger place, and can set up properly for it.
I don't need to have beer from grain to glass in under two weeks. For one thing, I'm not kegging, so it's pretty much not going to happen right there. If a brew is 'ok' or even 'good' at two weeks, it could be even better given just a little longer. Of course, since all of my brew's OG's have been over 1.050, having them ready for bottles in under two weeks just isn't going to happen.
As already pointed out, this is a hobby... Granted, people tend to get passionate about it. I think we'll always have the two camps of people wanting to have their beer done NOW, and those willing to wait for the beer to be ready. Even when I get a fermentation chamber (or make one) I'll give each brew the amount of time IT needs to complete, or be ready.
One good way, in my opinion, to learn patience in brewing is to brew something really big. A hefty BarleyWine, Braggot, or even a sack mead. Talking about something that won't be ready for 10+ months. With those, you'll learn to appreciate aging, and see how they change over time. Even just a few months makes a difference...