The bug was a Ruby 1.9-specific issue that another user had stumbled on which I hit as well. Unicode support in the 1.9x series is great, but brought some trouble along with it.
The problem in this case was that ETag generation in ActionController tested the response data using a method that threw an exception if it hit a string with an encoding issue. As such, the request would die after being processed, but before being returned to the user. Because it occurs after calling render in ActionController::Response, the exception was unrescuable. (Ed: No 500 error page, no rescue_action_in_public, or any indication of an exception - just an HTTP response with an empty body). It was a sticky situation. Read my longer comment if you're interested in a full explanation.
Anyway, I don't mean to re-open the discussion now. I eventually resolved the issue by applying this patch locally, then moving to a new encoding-aware MySQL adapter. Life's good.