I solved this (when sleeping in a military transient housing bay or something) by sleeping on top of my phone, in airplane mode, with a vibrate-only alarm set for one time, and then a separate phone or alarm set for audio alarm 5 minutes later. Direct vibration onto skull is pretty effective way to wake up.
I use do not disturb mode between 11pm and 9am. If you're in my contacts list it'll ring (silent), otherwise you're going straight to voicemail. The concept of being woken up by phone a phone call (other than being actively on call for some reason) is crazy.
And it's extremely useful, I don't get random calls in the middle of the night unless it's PagerDuty, select coworkers (in case something is a big-deal before PD calls me 10 minutes after the push notification) and family.