The amount of different completion plugins in Vim is something that I also suffered a bit. I tried many of them (YouCompleteMe, Deoplete, Coc.nvim) but none of them really worked properly.
For the moment I mostly code in Python and I settled with a very minimal setup:
1. Linting: python-mode. IMHO it provides very good linting out of the box
2. Completion: jedi-vim. Jedi for python is great. Even though with this minimal setup the completion is not asynchronous I still think it's great.
It took me some time and a recent pruning to actually arrive at this minimal setup. I totally feel it with the author that finding the right set of plugins in Vim can be a bit overwhelming.