Parar/detener are the most literal translations from stop (although detener also means often to arrest).
Dejar is "to leave" in general, only the form "dejar de" is stop (basically it means stop doing a continuous action).
Acabar is pretty equivalent to finish (i.e. you can say "acaba tu plato" -> "finish your dish"), suspender matches suspend, impedir is prevent or impede, and alto is an interjection which translates literally to "stop!" (although alto also means tall).
In your examples:
- Stop talking to me! I'd translate as: ¡Deja de hablarme!
- The driver saw the red light and stopped his car. I'd translate as "el conductor vio el semáforo en rojo y paró/detuvo su coche"; parar/detener are often used for "stop movement"
- You really need to stop smoking. If you mean "quit", the best translation is "dejar de" which is a good match for quitting, as in "realmente necesitas dejar de fumar". If you mean "stop smoking, you are standing next to flammable stuff", the same translation would oddly work
- The lightning storm stopped the football game. I'd say "la tormenta detuvo el partido". I wouldn't really say suspender- the officials can suspend the game due to the storm, but the storm itself doesn't. If you were to say suspend in English, you'd be able to say suspender in Spanish.
- These laws stop us from communicating freely -> esas leyes nos impiden comunicarnos libremente/evitan que nos comuniquemos libremente, if you'd say "prevent" in English.
Which comes closest to a general-purpose word for describing something that is happening coming to an end?
Acabar. The movie is coming to an end -> la película está acabando. But I really wouldn't say "the movie is stopping". Acabar is pretty close to "to end".