Well, er, almost. It's supposed to have the error go away exponentially (i.e., if the error in the solution after 250 steps is 1/10th the error after 200 steps, then the error after 300 steps will be down by another factor of 10 from that), but on very fine grids, there's a small bit of error that goes away linearly -- which means it goes away very slowly. But it's a very small bit, and in general it works, and it now takes 20 minutes to do calculations that would have taken 20 hours before I started this bit of debugging and stuff.
Meanwhile, I go home now and spend the evening with suzanne. No more debugging of programs today.