Overall, I would say I am really happy with sbt. I think it's the best build tool available for the JVM; if I was for some reason to start a Java project, I would probably write its build in sbt.
I like the way that settings work and that you can explore their interdependencies so well with
inspect. It's nice that you can just guess at scoping, and get compiler or setting-solver errors if you screwed it up. Where
show failed, I've found it easy enough to browse
Defaults.scala to figure out how things are being computed and where the correct place to insert a customization is.
It's also wonderful that so many things are type-checked, and if not that caught by the setting interdependency solver. Having to wait until you're trying to release to get basic errors that could have been caught with types is really annoying; sbt heads that off pretty well. It also makes it even faster to do exotic things, since you don't even have to run any builds to catch most errors. I don't really have any strong feelings about DSL versus regular Scala source; they are both fine to me.
I also had a pretty easy time working out how to publish to Sonatype, and doing so, just following the manual. This was back before
sbt-sonatype existed, even, so it is probably easier now. Maybe not having trouble with this makes me an outlier.
In particular, we would like to listen to your ideas and suggestions to improve the build tool. How could we make sbt easier for your day-to-day job? What current interactions with the tool you would like to see optimized?
My only real ask would be a built-in version of sbt-adhoc-subprojects-plugin's core feature that actually worked with normal projects. Being able to treat whole other projects as subprojects is really nice; I used it all the time with Leiningen when I used Clojure. My hacky plugin is not nearly good enough for real library sbt builds, though.
My experience may be atypical, however. Maybe most users do not care about patching libraries while working downstream.