BTW dead horse being flogged over here: https://www.reddit.com/r/Clojure/comments/4qbtqo/how_many_of_javas_horrors_are_addressed_by_clojure/
Yeah, I hate to say it again @cfleming but Cursive is a very atypical Clojure application and the sort of Java interop it has to do makes things worse. I'd expect Clojure to "hide" nulls more when dealing with Java so much (laziness, late type checking etc). But interop code is, by definition, not "idiomatic Clojure" so, again, I stand by my points.
For your use case, Clojure is likely to be a worse choice than Kotlin, IMO.