Is hook_file_download the right hook for taking action when a private file is downloaded?
If I recall correctly, there's an access pass before hook_file_download is ever called. hook_file_download is called so you can modify headers, or do a last minute abort on the download.

So on the assumption that no one else is calling that hook (which you should check for the modules you have installed), a hook_file_download implementation is a perfectly fine place to do something like call a Google API. The only caveat is that if you're calling a web service, you want to make sure it doesn't take so long as to screw up the download.

I'm fairly certain that the hook will be called for any file scheme (i.e., "private:", or a custom scheme).  You may want to look at the Drupal 7 Example module "File" example, which I believe shows a hook_file_download implementation.

The behavior in Drupal 8 is similar, BTW.