That was months ago actually. I just retried and it works perfectly, but it's still synchronous and blocks the UI. This is what I expect from neovim: provide me with async lint/checks.
The only ongoing works on the problem I've seen are https://github.com/scrooloose/syntastic/issues/1253 and https://github.com/benekastah/neomake, which I've not tried yet.