INI is a format that suffers from the lisp curse (it's so simple you can just write your own parser in a couple of hours even in C), but that's not necessarily a bad thing for configuration.
I think the true issue is in the very term "configuration format".
Why is TOML a configuration format at all, eh?
It's basically a database.
Schema verification is actually a bad thing unless you can truly verify the intended meaning.
Like if you're looking for, idk, a birth date, and tell TOML to look for a date, 0001-01-01 would be a valid type, but an invalid semantic.
But building semantic verification is very hard.
On the other hand, strict typing means more errors (for no good reason), way more complex parsing (for no good reason), and no significant advantages.
So why do people use JSON/TOML/etc as configuration?
Well they're not, they're using them as a seed database, lmao.
Configuration is human-facing, but databases are application-facing, and it's easier for a developer to write an application-facing thing as they are writing the application.
In that use-case, honestly, YAML is probably optimal.
However, for actual configuration, INI is most of the way there!
The reason for CNI existing is yes to standardize an INI dialect, but also to ensure it is compatible with CLI inputs (so you can unify CLI and File configuration schemas).
Which brings up a very specific point: calltime configuration is also configuration, and it makes sense for the calltime configuration and runtime configuration to have parity.
So I would say that INI is the best configuration format, and indeed in part because it's under-specified.
However, I can imagine configuration formats that are better under different ecosystems (e.g in a typed argv OS).
And if your true use-case isn't configuration but data management, it's not ideal either.