As a general rule, you use “kein” for nouns and “nicht” for everything else (verbs, adjectives and prepositions). “Ich habe keine Ahnung” (I don’t know), “Ich habe keine Angst” (I’m not afraid), instead of “Ich weiß es nicht” (I don’t know) or “Ich fürchte mich nicht” (I’m not afraid).
In the example you mentioned the “Habe nicht Angst” is actually wrong. In that phrase you always have to use “keine” since it is with a noun (Angst / Fear).
While there still are differences between former East- and West-Germany, language is not one of them, or at least not because of the wall. Every region has it’s own dialect and there are discernible differences from which you can tell where someone is from, but that goes for the whole of Germany and is no different to just about every other country.
The difference I mentioned is just a difference in mentality. Comparing Munich (or rather the rest of Bavaria since Munich is a special case) to Berlin is like comparing Texas to Seattle, though not as extreme
The German in Austria and Switzerland is different to that in Germany. Whereas Austria is relatively similar and you can talk with them without difficulties, the Swiss-German has more differences and, depending on the region (again), I can only pick out words from what they are saying and otherwise just stare at them and wonder how they can talk like that
Regarding “cool”, that got adapted from English and is used with the same meaning.
You can substitute “kein” with “nicht ein”, whereas it is purely for emphasis. For example: “Er hat keinen Fehler gemacht” (He didn’t make a mistake) and “Er hat nicht einen Fehler gemacht” (He didn’t make a single mistake).
In some cases yes, but I figured going into the differences of dialects would be a little overboard for someone who’s just starting with German
(Well, it’s hard for Germans. I remember that poor guy from Hamburg who came to the rural Niederbayern. He had an extremely hard time to understand the local dialect )