Whether to use categories or tags depends on the intended use. The primary differences is that categories are hierarchical, which means that you draw associations to not only the category applied, but also its parent (and potentially child) categories as well. Tags don't relate to each other like that.
For example, lets say I were categorizing an apple. I would put it in the category food and it's subcategory fruit, but I would tag it things like red, sweet, and fall, since those are more descriptors.
In terms of application, categories are to help users and search engines find all your content, tags are to help users find related content and to help search engines categorize content.
So the answer to your question really lies in how you intend the site to be used. Are you wanting users to look at just commercial businesses and not non-profits, or merely to know that the listed business is a commercial business?
On the meta value issue, how is this date different from post_date? I'm a big fan of sticking to core capabilities wherever possible, if post date isn't something that will be used or better yet, if it makes sense in the context, just use post date to handle the date. This gives you the added advantage of retrieval with the post object, rather than needing a separate query, which saves (an admittedly minimal amount of) resources and makes coding easier.