A few other ideas that I haven't seen mentioned yet in this thread:
1) If you haven't invested in one yet, you might want to try and get a rig to aerate your wort, prior to pitching (pure O2 and a SS airstone). Might be that your yeasties aren't getting up to sufficient cell numbers before they switch to fermentation. Some folks swear by this form of aeration - I've never needed to do it, but you might want to try it, at least as a way to eliminate under-aeration as a possibility.
2) Check your water chemistry. A good rule of thumb for healthy yeast is to have at least 50 ppm calcium in the wort. Obviously not an absolute (pilsener styles seem to get by with next-to-nothing levels of calcium).
3) Are you using yeast nutrient in the last 10 minutes of your boil? There are other trace minerals (e.g. zinc) your yeast will require for healthy growth/fermentation that they may not be getting from your grist. I use either Wyeast Nutrient or Fermax and haven't had any attenuation issues (yet)...
4) Try the same recipe, but with a less flocculating yeast. Sometimes periodic swirling/degassing during fermentation will help to drop the FG a few points, and if you use a less flocculating yeast, they stay in suspension longer. Again, may not be a huge difference, but might lower your FG a few more points.