Stratified sampling is most efficient (in terms of variance of the estimate) when you have homogeneity WITHIN strata and heterogeneity BETWEEN strata. Think US states if your variable of interest were some social issue. Texans are very similar to each other but wildly different from New Yorkers (who are again similar to each other). If this is the case then stratified sampling can be more efficient than simple random sampling since you require less samples to achieve a fully represented sample of your population. 

If, in the case of a rare population (i.e. sexual minorities), if that population acts homogeneously with respect to the variable of interest and heterogeneously from members that do not belong to that rare population, then this can cause a large variance in your estimate dependent on whether or not members of this group are in your sample or not. Stratifying on this group ensures that members of this group are in the sample thus achieving less sampling variance for the same sample size.

Consider the case of estimating business revenue in a town with many small businesses and one Wal-Mart. Whether Wal-Mart is included in your sample will cause huge variations in your estimate. Stratifying based on something such as number of employees and perhaps including Wal-Mart in its own strata where the sampling percentage is 100% (this is a take all strata) will decrease the variance in your estimate.

Conceptually, stratified sampling is all about decreasing the variance of your estimate. It allows either the same variance as SRS with fewer samples or less variance for the same amount of samples. What would preclude a variable from being used to stratify? If it had no effect on the variance of your estimate. That is, if it did not further increase the homogeneity within strata. For example, stratifying on eye colour if your variable of interest was student performance. It may not hurt your strata but it will increase the complexity of your survey design needlessly. 

Cluster sampling is most efficient (again, efficiency in terms of variance) when you have heterogeneity WITHIN strata and homogeneity BETWEEN strata. Think schools in a particular state and the variable of interest is student height. Cluster sampling intends to design each cluster to essentially be a mini version of your population. The main benefits of this are practical in consideration.

For example, you don't require a complete frame, i.e. if you want to sample students but don't have the students contact information, you can sample the schools instead and have them give the survey to all of the students. It also saves on cost of actually administering the survey. If your survey must be completed in person then it can be expensive to drive around and survey persons chosen randomly using SRS. If you sample clusters that are chosen with geographic proximity in mind this becomes less expensive and can actually lead to you being able to survey more people (which can lead to less variance than SRS).

Clusters are less chosen for their ability to reduce the variance of your estimate and more for their ability to aid in survey administration and reducing cots, however that being said, beyond just practical reasons, it is possible that cluster sampling will have less variance than SRS with the same sample size if there is an intra-class correlation that is negative.