A diaeresis signals you pronounce the vowel separately, a trema signals the pronunciation of the previous vowel (e.g. in the French ambiguë), an umlaut changes the sound of the vowel ( the German a sounds a bit like the English a in bat, but ä sounds like the English e in bed).
Notationally I wish the diaeresis was a single dot. It bugs me that we’re using two dots to separate two syllables, yet both dots are over the second syllable. Plus a single dot would avoid ambiguity with the umlaut (though I suppose there are very few words with both features).
A lot of glyph based idiosyncrasies like that in languages scripts are artifacts of the era of physical block types before we had shit like hot cast linotyping where the blocks were made on demand.
What probably happened is umlauts were used a lot in German and some lazy typesetter wasn’t going to waste a perfectly good block sitting around that he could reuse