Speaking as a member of the Ubuntu Kernel Team, specifically as the 'Kernel Bug Guy', I agree with Daniel's answer as it is the sum of what the Engineers see being the total issue. This is not to discount Oli's answer.
In the realm of the highly technical end user, Oli's answer is completely true in that it is a set of the steps we would expect a person of considerable technical acumen to use, however, our intent (and indeed the entire purpose of this site) is to guide the less technical.
Our main goal must be to provide them with quick and accurate answers that allow them to continue using the software that we build. My favorite saying is, "If it isn't simple 'they' won't do it." The 'they' here referring to whomever the user is at the time.
Having said that, and given my personal admiration for the completeness of your post Oli, I have to be honest and say that there are very few readers of this site that will read all of it. They will likely not read all of mine, and that is fine.
In the end, Daniel's response is exactly what we need here. It conveys both my and the Team's impression of these issues as well as our preferred method to address.