in reply to Testing redirected croak messages
Actually, the solution I came upon was to carp using redirection, reset STDERR to its original destination, and then croak. That way the log gets written before dying, and anything that causes failure also gets written to the terminal (if it's not redirected by the shell).
Thanks everyone for the suggestions, though.
In Section Seekers of Perl Wisdom