As long as I know it's a good practice to use multiple subtypes in the same contact.
Doing that you can, for example, create different custom fields for each subtype. So your coaches who are also trainers will have the fields for being coaches and in addition the fields for being trainers.
And if in the future, one of your coaches became a traier, you can ...
On multisite you tie each membership type to a domain id. You can find what the domain ID's by looking at the civicrm_domain id table (or in the civicrm.setting.php file).
If you create the memberships on the correct domain they will be correct I believe, but if you don't then just adjust the domain_id in the civicrm_membership_type table.
Then only the ...
Welcome to CiviCRM stackexchange. CiviCRM allows you to create contact sub types under each contact types. When adding new contact sub type the form allows you to define the image url which is used to display against contact. If you ignore this field at the time of saving or have no values than CiviCRM uses default image to show against the contact ...
It will mostly work, however, you are on less travelled paths, so you might bump into issues on some "out of the ordinary" actions. For instance, imports or profiles assume(d) a single contact subtype per contact, so you might end up removing subtypes.
I'd suggest you to test creating a few contacts that have several subtypes and try to export import, see ...
You can't create a new Contact type at the level of Individual/Household/Organisation (although most things are possible with enough code!).
However, you can create subtypes of those, so you could create subtypes of Individual as Pet and Human. For the Pet subtype you can create custom fields relevant to them and with the Contact Layout extension that ...
it may be also worth familiarising yourself with what https://github.com/civicrm/org.civicrm.contactlayout can do in terms of changing the configuration of the Summary Screen. It allows you option of creating multiple layouts but i don't recall if they can be contact sub-type specific but am pretty sure it does
Managing Multiple Layouts
I remember there was a patch for a contact type search...let me dig....that was with CiviCRM 4.6 and the issue was https://issues.civicrm.org/jira/browse/CRM-18063. The patch worked for me, but I am not sure if you have the same problem?
Depends what you want to do with the dog contacts, but another option for your last name question would be to use a sub-type of Organization rather than Individual since that only requires a single name.
I'm assuming the dog doesn't have email? Then again, it's almost the year 2020. All joking aside, if the org were to register a .dog domain name (which does exist), they could assign emails for the dogs and maybe get some publicity along with it. Then last name becomes optional.
Not a definitive answer yet but it seems to be related to the way they tried to implement comment fields. I disabled all their "Alphanumeric > text" fields and the errors go away. Still having to dig deeper as to what they did (all through the UI) and why it broke things so badly.