A. The first and most important thing that you should do is never leave him anywhere where he might fall again. This includes a bed, couch, changing table, etc. You got lucky this time that he wasn't seriously injured.
Even if he is on your chest, if you are asleep, he is technically unsupervised and could easily fall again.
I do understand that it can be frustrating when your baby won't sleep though. Many parents resort to almost anything to get their baby to sleep well, but you must make sure that you don't ever sacrifice safety in the name of a good night's sleep.
Instead of letting him lie on your chest, you might try swaddling him in a baby blanket when you put him to sleep. Many babies like the snug feeling of being swaddled, since it probably gives them a sense of security and helps them to avoid waking themselves up when their arms jerk in their sleep (the startle reflex).
If you can't get a hang of swaddling your baby with a blanket, a specially made swaddling blanket might be useful.
Keep in mind that some babies actually don't like to be swaddled and like having their arms free. And you should stop swaddling your baby once they are 3-4 months old or able to roll over, because of the risk of SIDS. It is probably a good idea to stop swaddling at even a younger age, so that your baby doesn't get too dependent on the technique and you have a new sleep problem to deal with later on.