The simple answer is that switches are meant for toggling functions. What else are they for? The switch we use for lights in the US is called a toggle switch.
Toggling buttons wouldn’t be too bad of an alternative. They are good mostly for situations when the on and off physical position are ambiguous, such as on aircraft overhead panels, or with a population of international users, as you suggest (assuming an In position means an On state in all relevant countries; I don’t know). FWIW, in the US, we still label our switch positions “On” and “Off,” not that it helps much in the dark.
Toggle (or rocker or slide) switches are generally preferred to toggling buttons because there is a distinct action that distinguishes an On command from an Off command (plus the clearer visual difference that Ben Brocka mentions in his comment). Imagine this scenario: enter a dark room and, by feel, stab the toggle button. Nothing happens. So you stab it again (maybe it didn’t quite take). And maybe again. Still nothing. Now you remember it’s a cranky old fluorescent light that takes a few seconds to come on. Now what? Is the light set to go on or off? Maybe the light was set to be on before you got there but the light has finally burned out. How long do you wait? You feel the button and try to guess if it’s set to be On. Toggling buttons in my house are out-dented whether on or off; they’re just out-dented more when off (I think they do it that way so it’s easy to turn it off with a panicked swat, like when something catches fire). Is your button in enough?
The stairway switch issue (a three-way switch) is certainly a known human factors problem, but it’s purely an artifact of the cheap and simple mechanism used (I wouldn’t call it “advanced” at all –we’re talking 19th century technology). A toggling button would have the same problem. The solution would involve putting a solenoid in the switches at each end of the stairs so their positions stay in synch. I sense a business opportunity for marketing to high-end light switch users.