ahci: rework init workflow & fix timeout handling