+1 for HOCON, if you're on the JVM at least. We use it in our product with some extensions. Like you, I find it just feels good.
For those who haven't encountered it before, HOCON is a superset of JSON so all valid JSON is also valid HOCON. Then it starts adding syntax sugar and useful features specifically for configuration files (the "H" stands for Human).
We wrote a tutorial for our product, it has a slider you can move to see how JSON evolves into HOCON along the way:
https://conveyor.hydraulic.dev/11.2/configs/hocon/
It's got some nice features. There's no "syntax typing", programs that use HOCON are thus very forgiving. Conveyor takes that even further, for example, anywhere you would normally need to specify a list of strings you can also specify just one string, it'll be wrapped automatically. There is a formal spec. It supports substitution, inclusions and it defines the semantics of duplicate keys which allows for refactoring of configs out to separate re-usable files. It has a nice clean look that gets out of your way. You can not only include files but also URLs.
On top of that we add a few more features. If you need to express a list of strings then brace expansion is supported, i.e.
foo = "bar-{1,2,3}"
is equivalent to
foo = [ bar-1, bar-2, bar-3 ]
But probably the most important feature is hashbang includes. These allow you to include the output of arbitrary external programs:
include "#!program --flags"
This lets you get the best of all worlds - the fast loading, simplicity and IDE sympathy of a declarative JSON-based config syntax, but if you hit the limits and need to programmatically generate some config you can do so whilst restricting the imperative logic only to the part of the file where it's needed. The rest remains declarative.
All this works pretty well. At some point I want to package this up into a native library using GraalVM so it's available to anything that can load native libraries. Being Java it's accessible to any language that can run on the JVM which is pretty good already, but to use it from Go would require bindings.
There are some downsides. It's not as well known as other syntaxes so syntax highlighting is sometimes missing from things like docsite generators. IntelliJ has a plugin for it but for other editors you might not get good support. It doesn't really have a schema language either, although you could of course just use JSON schema.