I have to disagree with the others here. I don't think there should be much done about this.
1. Asks dozens to hundreds of questions over a period of 3-6 months (or more).
The more the better. Each additional question on SO adds to the knowledge base (if the question gets useful answers) or just sits there to be forgotten—with 48 gigs of memory in your DB server, the latter shouldn't be much of a problem. Real crap can be deleted, anyway.
2. All questions are consistently of low quality and hard to understand, requiring major editing.
So? These questions either turn into something good in the long run, because (with or without help from the asker) they are edited for the better and possibly get good answers, or they get downvoted and drown in the sands of time (or get plain deleted).
3. Extremely low answer accept rate (below 10%).
Each potential answerer sees the acceptance rate and can base his decision (whether to answer or not) on this. If they provide a good answer and get votes from that, that should be okay–rep-wise because the vote rep outweighs the possible 15 for the accept tick, and knowledge-wise because the best answer (by community choice) floats to the top.
If anything is to be done at all, it should rather be something like the often asked-for "community-accepted answer" (which I'm not a big fan of myself), or maybe a badge for an answer with many upvotes on a question that has no accepted answer but is older than, say, 30 days.
4. No increase in quality (effort expended to make questions good, clear, and useful) over time between oldest questions and newest questions.
The only possible thing to do here is to disallow asking, be it temporarily or forever. This, however, means that none of the questions that otherwise might have been posted will ever have the chance to grow into something better and in the end actually add to the site. Also, if you want to keep up with the "no registration neccessary" rule, the way to circumvent this suspension would be to just clear your cookies. These people usually don't care about their account, let alone their rep.
5. Extremely low answer count (0-10). User does not "give back" by occasionally trying to help other programmers answer their questions, only "takes" by asking questions.
Do you really want these people to answer questions?
These are users who have, over a period of 3-6 months, demonstrated an utter and complete lack of interest in ...
a) putting their own effort into the questions they ask of the Stack Overflow community
It's hard to imagine that there's a way to teach them different. So I say let's embrace them, try to nudge them into the right direction once in a while with a "You might want to..." comment, and if they post a question that in the end leads to more knowledge on SO, the deed is done. Maybe one day they will themselves realize what a great community this is and improve their own behavior. Maybe not. Cutting them out doesn't do anything good–unless, as I said above, you want to start requiring registration.
b) learning from the Stack Overflow community
If they keep coming back, I guess they have found that on SO, they get answers that help them. If just one out of a hundred takes more from that than just copy & paste the code from the answer–great!
c) giving anything back to the Stack Overflow community
Not directly, true. But if any of their questions turn out to actually add to the site, they have given to SO, which, in the long run, helps the community as well.
Long rant. Let me make this clear: I don't like these people's behavior, either. But, as explained above, I don't think there should be any harsh measures taken. The more 3k+ or 10k+ users SO gets over time, the faster the noise is dealt with. As far as I see it, this has worked pretty well so far.
Update: Mehrdad has posted a (disagreeing) answer to this one which makes some valid points.