Mari is one of the key languages for the reconstruction of Proto-Uralic *ë, in having a mostly unique reflex *ü > Hill Mari /ü/ ~ Meadow Mari /ü/. The only other known regular source of this vowel correspondence is would-be *ü̆ (from earlier *ü, *i, *e) in roots of the shape *CV, such as Hill Mari /šü/ ~ Meadow Mari /šüj/ ‘neck’, from PU *śepä.
The development *ë > *ü was first explicitly proposed by Wolfgang Steinitz in his Geschichte des finnisch-ugrischen Vokalismus (1944) (in his notation: *i̮ > *ü). This fact has been later on essentially forgotten, though. E.g. fifty years later (1994), Gábor Bereczki in Grundzüge der tscheremissischen Sprachgeschichte recognizes only two examples theoretically falling under this: /šüm/ ‘bark, crust’ (< *śëmə ‘scales’) and /nölə-pikš/ ‘blunt-tipped arrow’ (< *ńëlə ‘arrow’), which he furthermore explains, following Erkki Itkonen’s views from 1954, instead as “sporadic” fronting from *u and *o. 
The grounds would have been ripe for a reassessment of the historical vocalism of Mari already since the rehabilitation of *ë by Janhunen and Sammallahti in the 80s. It has been taking a bit longer, though. The next source after Steinitz that is on board with his theory seems to be a footnote by Ante Aikio in his 2006 article “Etymological nativization of loanwords”,  hence adding up to a blackout period of more than 60 years. I believe this has been an independent rediscovery rather than a revival as well. Aikio notes also that the conditions for the change are unclear, and it is indeed the case that PU *ë as reconstructible per the evidence of the other languages is often enough reflected also as Mari *å (Hill /a/ ~ Meadow /o/) or *o (Hi. Me. both /o/). So how should we deal with these cases?  By now we have at least one initial suggestion, by Mikhail Zhivlov from 2014, that *ü would be the default reflex, *å ~ *o the reflex before the velars *k and *ŋ (but not *x).
The split *å ~ *o remains unclear for now as well, but this is also the typical development of *a, hence we seem to be dealing with an early lowering *ë > *a, as also in many other Uralic branches. This is general in West Uralic; in Permic it seems like the most common development (followed then by *a > *o > *u), versus retention *ë > *ë mostly before sonorants; and Hungarian has “a-umlaut”: *ë-a > *a. I suspect on the other hand that *ë-ə > *aa in Khanty is the result of relatively late lowering from earlier *ëë, which could be connected to the same change in Northern and partly Eastern Mansi. (The development *a > *aa is attested too, but rare, and more common developments like *a > *a, *a > *oo, *a > *uu seem to require room for maneuvering in pre-Khanty.)
After having looked over the data  once more though, I have settled on a different view: the primary conditioning seems to be instead syllable closure. (This is one of what I think of as the “stock” conditioning features for divergent vowel developments, along with metaphony and labial/palatal coloring due to neighboring consonants. )
1. *ë > *ü in open syllables (before a single consonant):
- *ëla > *üla > *ül ‘under’
- *ëŋas(V) > *üŋəSə ‘rested’ 
- *jëxə- > *jüä- ‘to drink’
- *lëCə-ta- > *lüðä- ‘to fear’ 
- *lëčə- > *lüčä- ‘to get wet’
- *mëxə > *mü-ländə ‘land’, *mü-ðe- ‘to bury’
- *ńëlə > *nülə ‘arrow’
- *ńërə > *nürə ‘flexible’
- *sënə > *sünə > *Sün ‘sinew’
- *sëtə > *Süðər ‘spindle’
- *śëmə > *śümə > *Süm ‘bark, crust’
- *śëta > *Süðə ‘100’
- *wajə ~ *wëjə > *ü(j) ‘butter’
2. *ë > *a > *å ~ o in closed syllables:
- *ëkta- > *akta- > *opte- ‘to put, place’
- *lëkśə- > *lakśə- > *lokSə-ńća- ‘to chop’
- *lëntV > *lantV > *lånda-ka ‘valley’
- *mëksa > *maksa > *mokS ‘liver’
- *ńëčkə > *načkə > *nočkə ‘wet’
- *ńëkćəmə > *nakćəmə > *nåSmə ‘palate’
- *pëŋka > *paŋka > *poŋgə ‘mushroom’
- *tëktə > *taktə > *toktə ‘loon’
- *wëlkətə > *walkətə > *wålɣəðə ‘light’
Set #2 certainly shows a lot of velars following either immediately (*kt *kś *ks *kć *ŋk) or as the second member of the cluster (*čk *lk), but this probably doesn’t need any explanation other than the general abundance of *k in the PU consonant cluster inventory. There is also one case with *nt. Set #1 meanwhile has only one example with *-ŋ-, but similarly, in CVCV roots *-k- is by contrast rather rare.
This pattern is complicated though by suffixation and consonant cluster simplification processes in Mari. In these cases we find both *üC and *aC, and I would hypothesize that this means that the split of *ë dates in-between some of these.
3. *ë > *ü also in secondarily open syllables:
- *ëptə > ? *ëpə > *üp ‘hair’
- *mërja > ? *mëra > *mür ‘strawberry’
- *sëntə- > ? *sëtə- > *Süðä- ‘to clear woodland’
4. *ë > *a also in secondarily closed syllables:
- *ďëmə → *ďëmə-pawə > ? *ďëmpa(w) > *lampa > *lombə ‘birch cherry’ (a compound with the word for ‘tree’ as the second member)
5. *ë > *a in “tertiarily open” syllables?:
- *ëppə > ? *appə > *owə ‘father-in-law’
- *këččə > ? *kaččə > *kåčə ‘bitter’
- *lëmpə > ? *lampə > *lop ‘depression in ground’
- *wëlka- > ? *walka- > *wåle- ‘to go down, descend’
6. *ë > *ü in “tertiarily closed” syllables?:
- *ńërə(-ka) > ? *nürə-kA > *nürɣə ‘cartilage’
But it’s also possible that there are a few other, smaller conditioning factors here as well. It seems somewhat dubious to me in particular to to end up dating *mp > *p (in *lop) as younger than *nt > *t (in *Süðä-). In principle most cases here could be also further confirmed or falsified by other results on the chronology of consonant cluster simplification in Mari.
This hypothesis also points towards a different line of explanation for some other instances of Mari *ü. There is at least one case where we find *ü in a closed syllable clearly retained from PU, in what seems like an original back-vocalic environment. This is *jükSə ‘swan’, for which I have earlier sided with reconstructing *ë … but since none of other languages show evidence particularly in favor of *ë, maybe a development *o > *u > *ü or the like will be a better explanation for this one case after all.
 I don’t think I can dismiss strongly enough, in polite company at least, the notion of reconstructing “sporadic” sound changes. As some readers know, my (hopefully soon-to-be-wrapped-up) Master’s thesis treats the research history and reconstruction of the Proto-Finno-Ugric long vowels. One meta-result of this work has been that, by now, I see Itkonen’s insistence on sporadic sound changes as having prevented substantial progress in the reconstruction of comparative Uralic vocalism for just about half of the entire 20th century (to some extent even up to today). This device is not much more than a license to stop thinking — to avoid placing a given language group’s phonological structure in a general comparative context, and therefore, to be unable to discover more parsimonius explanations such as properly conditional splits. Closer to the topic though: I cannot blame Bereczki very much for not seeing /ö/ and /ü/ as etymologically equivalent, since the lowering of *ü to /ö/ (perhaps better: retention?), as later unraveled in detail by Aikio, has at least somewhat complex conditioning.
 In Diane Nelson & Ida Toivonen (eds.): Saami Linguistics, pp. 17–52.
 Steinitz did not have any trouble with these exceptions, since he postulated extensive original “ablaut” variation such as *a ~ *i̮ as a data-cleaning deus ex machina of his own.
 Three of the cases in section 1 are absent from all three recent overviews of the development of *ë either in general or in Mari in particular, i.e. Aikio 2014, 2016 and Zhivlov 2014 (see Bibliography). (1) The reconstruction *ëŋas(V) ‘rested’, reflected also in Samic *vōŋēs, is from Aikio’s PhD thesis (2009: 289). (2) *sëtə (> Mo Ma P) can be found in already in UEW (as *setɜ, and with Erzya /sad/ ‘stem, trunk’ rejected, though it fits perfectly under *ë; this may be a better etymology for the Mari word than the comparison with Finnic *kecrä, Mordvinic #kšťəŕə ‘spindle’ ← pre-II *ketstra-). (3) The ‘butter’ word has been consistently reconstructed only as *wajə (*waje, *wōje etc.) so far. Aikio 2016 notes that Samic and Mordvinic point to *ë — but so do also Mari as well as Udmurt /vɤj/. Finnic *voi (regular from both) and Komi /vɨj/ (irregular from both, though possibly less so from *ë) don’t allow disambiguating; therefore it is only the Ugric reflexes that point to *wajə, and perhaps it is them that have innovated here, not the western languages. — An additional similar case is (4) *lëčə-, appearing already in UEW as *lače-, and covered by Zhivlov, but not Aikio.
 I do not rule out other consonant-environment-related changes, of course. For just one of my favorite examples of something less obvious, there is how the labialization of earlier /wa/ to /wɔ/ in Early Modern English (later > /wɒ/, /wɑ/, /wɔːɹ/ etc.) (dwarf, quarter, swan, swap, walk, war, was, what, etc.) is blocked before velars (quack, twang, wag, wank, wax, whack etc. instead have the usual development /a/ > /æ/). But I would be hesitant to apply this type of explanation too liberally. At its worst this can turn into over-fitted sound laws where each specific environment applies to no more than one or two words.
 I’m leaving aside here the only marginally dialectally retained contrast between PU *s, *ś and *š, which is irrelevant for the present issue.
 A trisyllabic reconstruction with a lost middle syllable (all of *lëjə-, *lëwə-, *lëxə- and even *lëkə- would work) seems to be required to account for the correspondence between Mari /-ð-/ (normally < *-t-, *-tt-, *-d₂-) and Samoyedic *-r- (normally < *-r-, *-d₁-). The lenition of *-t- to *-ð- > *-r- in the latter, regular after noninitial syllables, seems to have taken place also in “contracted” roots of this type. Compare *jëxə- → *jëxə-ta- > *ë-r- ‘to drink’.