There is really low chance of data corruption with DOL behavior.
It's only updating database "row by row", there is no real transactional behavior, and "foreign keys" are rarely created when a character is playing (references are used when creating a character or creating a guild/alliance, maybe when triggering some Quests...)
If you're not editing your server content (properties, mobs, items, quests) the only data that can be lost would be a short progress window like you said (and probably quest steps, player trades and other events from this short time window)
Synchronized flush to disk is only needed for highly critical system (Monetary Transactions...) but is a requirement for ACID validation of a Database Engine, so most of the time it's enabled by default, you can safely move to asynchronous disk flush for DOL Server if you're not in a country with unreliable grid power
Your 4K QD32 value for a hard drive is completely normal by the way ! (you should have a typical 0.5~1Mb/s in this bench) if your sequential speed is around 100Mb/s your disk is probably healthy...
MySQL have flush options that guarantee data in the last "second" is written to disk, this is clearly good enough for DOL player progress, and only flushing every second already allows for thousands of transaction if your disk have enough sequential throughput (data to be written is concatenated for the asynchronous flush)
SQLite have option to use a WAL file (Write Ahead Log), it flush transactions to this file before replaying them on the main database file, in case of power failure it will be able to replay this log and write all uncorrupted data to your database, it use less hard drive I/Os because the WAL file is only appended (no random access) and then it's asynchronously merged to your main database (with near sequential behavior...)