I'm thinking I can just spam the ErrorLog at the beginning of each request, and that with a piped error-log handler, I can re-format it back in to something sensible, stripping out "empty" errors.
I'm using CGI::Carp of course, but the errors it cranks out are free-form, just like you'd expect.