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.