So my problems weren't with printk at all, but apparently with userland logging.
My "solution" was to implement a userland application which executes the syslog system call (type 4 to clear it out afterwards). I have no understanding of why, but this works. Between syslogd, klogd, dmesg, et al. there is something tricky at work that results in dropped log messages.
It may not be the "correct" solution, but it appears to solve my immediate problems.
Thanks, Kirk
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/