in short: you can't. At least not in software. When you put your computer in suspend, it's suspended. Software like sleep (or more precisely, the systick or timer that tells your kernel to wake up the task after a given time) simply won't run.
So, only thing here is a hardware solution. Your laptop needs to have some alarm clock to wake up, and come out of suspend!
Luckily, that's fairly standard;
echo 0 > /sys/class/rtc/rtc0/wakealarm echo `date '+%s' -d "+ 5 minutes"` > /sys/class/rtc/rtc0/wakealarm systemctl suspend systemctl shutdown
would do that. IF your laptop supports it.
Note that I doubt the sense in this. The way you wrote your script, your laptop always directly shuts down when it comes out of suspend after 5 minutes or longer. I think you want something else. My guess is you'd want to check whether the 5 minutes have actually passed and if they haven't, assume the laptop was manually brought out of suspend and not shut it down. In that case, you'd need to save the pre-suspend time, and compare it to the time after.
Maybe you want systemctl suspend-then-hibernate? That would seem a likely thing. Under the hood, it does the same: rely on the RTC to come out of suspend at some time, then save the system state to disk and power off unless manually woken up before.