This is based on experience of British English, and British bus stops.
You can say waiting at a bus stop in pretty much any situation. It means the person is near enough to the structure or post of the bus stop that they can signal the bus and board it when it comes.
If a bus stop has an actual structure, rather than just being a post by the side of the road, you could say waiting in a bus stop, and it means they are under or within the structure. This is usually only used for stops whose structure is more than just a canopy, but has walls of some sort. Also, if someone is "in the bus stop" in this sense, people will usually still say "at the bus stop" unless they want to emphasise the inside-ness. They might also use waiting under the bus stop.
If a bus stop has an actual structure with a roof or canopy (as shown below), you could technically use waiting on a bus stop. It would just mean the person was standing (or sitting or whatever) on the roof of the bus stop, which is probably not what you want to say. At least, I don't imagine people want to say it very often.