Both prepositions are correct but have slightly different meanings here, depending on how the author considers the bus. The interpretation also depends on context1.
"On the bus" considers the bus functionally as a form of transport.
"In the bus" emphasises that the bus is a place.
So if I read that someone "fell asleep in the bus", my first impression is that the bus is not in use (maybe it is abandoned somewhere, or maybe the character in the novel broke into the bus company's parking lot and got on a bus at night).
If I read instead that someone "fell asleep on that bus", I imagine it to be a bus that is in use as transportation, so the character caught the bus and fell asleep while it travelled to its destination.
(so far as I can think, this use of on is limited to forms of transportation. One can be on a bus, on a ship or on a plane, while actually being inside. As others have pointed out, if you said you were "on that house" you would be standing on the roof.
- It is possible to be on a bus that is not in service and vice versa, but that is unusual and requires additional context.