Okay, the actual underlying mistake was pretty stupid, which made it
difficult to catch. This commit simplifies the solution.
What happened is that, for some idiotic reason, I was checking the type
of c.lastError, which was the previously set error for the context. This
was in place of doing the correct (read: smart) thing, which would have
been to check the type of the INCOMING error.
I'm not completely sure why I made this mistake, whether it was based
off of a previous incantation of SetError(), or because of some nested
dependencies that existed in a few ancient revisions, but it was still
something that should never have happened.