We have been getting these kinds of questions lately. And it can be confusing if you do not know the facts or principles behind search matches.
Google may not always use the description meta-tag for all searches, however, you can control whether the description meta-tag is shown much of the time. How effective this is, depends upon your crafting the description meta-tag. You can also control your fall-back SERP snippet taken from content. I will get into this.
In this answer, I describe how to craft the hierarchical/organizational path structure for your site: Well structured URLs vs. URLs optimized for SEO
I bring this up because the reverse of the concept works for the title tag, h1 tag, and description meta-tag. Without getting into the same details, I will describe what to pay attention to.
You are fortunate in that you have already identified what is important. You are much more than halfway there.
For the hierarchical/organizational path structure, you would normally organize this from the less specific to the more specific from left to right. For example, clothes, women, dresses, evening, blue. For a title tag, h1 tag, description meta-tags, and links (depending), you will want to do the opposite. What is most specific and narrow in topic should be placed first.
The most important HTML elements, excluding links for a moment, is the title tag and description meta tag. Following that is the h1 tag. The reason for this is that they are used in parallel search queries and combined into a blended result set that is then weighed semantically. This can be evidenced in how the SERP results are returned. While the description meta-tag is not a ranking factor in that there are no stored metrics based upon this tag, semantic analysis of the tag exists and weighed during any search query. What must exist within a description meta-tag, are search terms that people normally use most often to find your site even if they do not exist within the title or h1. This term match will make it more likely that your description meta-tag will show in the SERPs.
Here is an important fact that people do not know.
In order for your description meta-tag to be shown, one search term must be found in both your description meta-tag and title tag. Keep this in mind.
Also keep in mind that Google does not make keyword matches but will use multiple semantic analysis and scores (term weighting) within a matrix. So while we can say that Google does not look for a term specifically, it will look for weight for that term and similar terms such as plural versions of the term and synonyms, etc. using ontologies. What happens as a result is that terms are matched indirectly using linguistic methodologies. The reverse of this is to highlight the search terms or related terms within the SERP snippet. This is done after the SERP result set has been organized and filtered.
You are right in that you do not want your title tag, h1 tag, and description meta-tags to be identical. You want your h1 tag to be slightly more verbose than the title tag, and your description meta-tag more verbose than your h1 tag. They can be similar, but should not be identical.
One way to do this is to add additional semantic clues and be conversational. One of the best principles to remember is to always have a subject, predicate, and object (or at least as much as possible). For example, Sally threw the ball. In this case, Sally is the subject, threw is the predicate, and ball is the object. You can get more verbose by saying Sally threw the ball to Bob. Or Sally threw the ball to Bob who caught the ball. The more semantic clues you can give, the better without getting carried away. People talk about long-tail keywords all the time, but little can explain how this works. Additional semantic clues is how long-tail terms are found. Keep in mind that this works for content as well and not just tags.
For this reason, I suggest that the first sentence in the first paragraph of important sections of content contain extensive semantic clues and search terms to help capture search intent. This does double-duty. It can also be a tailored fall-back if the description meta-tag is not selected. Hint, hint.
Another consideration. While header tags are not matched as content and shown in the snippet, they are important semantic clues for the content paragraphs (etc.) following them. In a sense, you are boosting how that content can be found by adding some value. Header tags are not matched, but better empower how content is matched.
Now for the hints.
I like to ask simple questions such as What about x? For example, using your example, 'Subject A Teachers for Grade Y in City P.', What about Subject A Teachers for Grade Y in City P? Are they available? What do they cost? How can I find them? Are the certified? Can I trust them? Are they associated with an organization?
Are you getting the picture yet? The title tag can be simple as you have it. Your h1 tag can have one or more semantic clues. Your description meta-tag can have several semantic clues. Keep in mind the subject, predicate, and object. This is how Google understands your content. It is no longer a term index per se' but a linguistics analysis set of matrices that allows better matches search intent. This is evidenced in how Google can match a site or page for terms not used but related to the query. It used to be more exact matches appeared first, but today, more likely matches appear first. This means that what is returned in the SERPs are not always directly tied to search query terms by direct term matches, but how linguistics is seen and used in real life and in past search queries and click-through rates (CTR) along with bounce-rates and other metrics.
The good news is that this too can be automated rather easily. Clear as mud??