How should we be setting up product categories/sub-categories?
There's a lot of different ways to set up your store structure but categories in Craft are like folders you put stuff in. Entries/products are what goes into those categories.

Category Groups

The most basic way to set it up would be to create a new category group inside Craft and then start creating categories.  Category groups are like the filing cabinets you use to put the folders in. 

You can make as many category groups as you need and they'll show up separately in the sidebar. If you only have a few categories you can usually get away with one category group but it can also depend on how you want users to search and filter on your store. 

Sub Categories

Categories can also contain subcategories. To put Dogs underneath your Pets sub-category grouping, just drag it underneath after it's created). It'll start looking like the hierarchy you want in no time.

To get the categories relating back to products, you'll want to create a new category field that you'll use on the product (or variant). That will allow you to relate products back to categories and be able to search on them.

Product Types

Depending on how your store is setup, you may want to create different product types as well.

Like Category Groups, Product types are one of my favorite features in Commerce and can be very useful if your store sells different types of products that need different sets of fields/options for each. It's especially handy if your ordering process is going to be different for each product type. 

It's also useful especially if you sell thousands of products; seeing pet stuff and fashion stuff in the same part of the control panel area can get confusing quickly.

In your case, I'd probably create another product type just for events since it's going to be very different than the physical products you sell.

Hope that gets the ball rolling...