In the end Seagate replaced my HDD and that fixed the problem. It is strange that it wouldn't reproduce when using USB 2.0, but there was something wrong with the drive itself. I wrote the whole story in a blog post, with many more details, in case it helps anyone else struggling with random ejects: http://endavid.com/index.php?entry=102