OK, I just got my Logic Analysator and traced the communication on my PC while forcing it to do PIO instead of DMA. I then changed my AVR code to do the exact same commands and nearly the same timings and... nothing changed - the drive still responds with error code 0x04 after the read sector 0x20 command is issued.
On the PC: I noticed a time frame of 115,230ns between the 0x20 Command and the first alternate status register read. during that time, INTRQ goes high so the drive "is done" and wants the host to interact with it again. IORDY is the whole time high from the host. The status read is 0x58 on the PC. On the AVR: IORDY is the whole time low (it is not connected), INTRQ stays low the whole time, and the first status read back is 0xD0 for a long time and then it goes to 0xD1 and then 0x59. Things I plan to try next: - power down the drive on the pc, power it up and then try to access sector 1 again and see what happens. Maybe some magic "initialization" is done on bootup what I don't do. - make IORDY high on my AVR too