Don't repeatedly report checksum timeouts.
Fix another case of bad error handling.
Be doubly sure that we don't return without success at an EOF.