Nagios best practices for setting up hosts/services?

I think the answer to your question is not definitive, but will reveal itself over time as you develop a deeper understanding of how Nagios works. Services are generally tied directly to the host they run on, but as you are discovering, that is just a convention. A convention that works and provides some shortcuts, mind you, but a convention, nonetheless.

Also know that that you can define any check as the host check. It does not need to be ping. Perhaps check_http is better for your use.
See the image and host definition I use to check internet connectivity

define host{
use         generic-host,host-pnp       ; Name of host template to use
host_name       www.microsoft.com
alias           www.microsoft.com
address         www.microsoft.com
check_command       check_http
.
.
.
}

Given what you've said, I would create a dummy service with a bunch of you third party services tied to it for now and adjust it as you see fit.

To address your 3rd question, if you go the route of a host per service, you could use a host or service group to group them for display.