Good thinking LatinMcG. It's definitely worth an investigation. I see a few _EJ.. options in the ACPI spec.
i think we need to add code for _EJT for port 0 ?
I've been thinking about other possibilities too and came up with the question of could it be something to do with the fact that a lot of new Macs use AHCI Version 1.3?. My mobo uses v1.2 and I'm guess that'll apply to most of the users in this thread. Maybe there's a connection between Apple's IOAHCIFamily.kext and AHCI v1.3? or maybe a connection between AHCI v1.3 and the DSDT? I've got the AHCI specifications of both versions here so I'll try to find anything that jumps out as a possible.
As you say, we need to find a few system details from user who are not affected by this and then try to draw some common facts.
LatinMcG - I guess you were thinking something like this:
_EJ0 indicates the device supports hot removal; _EJ1–EJ4 indicate the device supports warm removal. For warm removal, the _EJ1–_EJ4 control methods do not cause the device to be immediately ejected. Instead, they set proprietary registers to prepare the hardware to eject when the system goes into the given sleep state. The hardware ejects the device only after OSPM has put the system in a sleep state by writing to the SLP_EN register. After the system resumes, OSPM calls _STA to determine if the eject succeeded.6.3.3 _EJx (Eject) - Page 243 - ACPIspec40a