Yet I still can't figure out where to put tab completion files for custom binaries
You can't? I've never done it but I'm pretty sure I know this: in bash, you can get it from pkg-config. If you aren't using pkg-config, you're kind of swimming upstream in the first place, but CentOS and Fedora (the only distro I use, but I think Ubuntu uses the same) look at /etc/bash_completion.d.
In zsh, it's just $FPATH. Your canonical location can also be gotten from pkg-config.
This seems very googleable. Doubly so if you're doing the right thing and...using pkg-config.
(Please use pkg-config. Thank you for coming to my TED talk.)
(I try to use PowerShell when on Windows. I genuinely like it--just kinda wish it was a little easier to write-on-the-fly, it's very verbose and typey and Tab is just far enough away to cause some wrist strain. ;) )