AS
На сколько мне известно запись в файл всегда синхронная. Да, иногда в кешах, а если fsync делаешь, чтобы убедиться в записи, то вряд ли будет "асинхронно".
А чтобы достичь вот прям "правильной" асинхронности, то нужно использовать, по всей видимости, O_DIRECT, работа с которым на самом делеле очень часто выглядит вообще не асинхроной (т.е aio c O_DIRECT бывает блокируется, к примеру, когда очередь операций переполняется (ну там несколько моментов, я их все не понмю)).
А работать с O_DIRECT - это по сути писать самому работу под каждый тип устройства (ssd, scsi, sata, ...), так?