Script:
I would probably add logs to the code to debug and to verify everything. Maybe considering adding:
set -x
You could dryrun suspend and check if something is blocking suspend
sudo /usr/bin/systemctl suspend --dry-run
Work your way from there
Questions:
Not really sure about that please read this before implementing. But you can edit /etc/systemd/logind.conf
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
HandleLidSwitchDocked=ignore
IdleAction=suspend
IdleActionSec=10min
Since you already configured user drew to not need a password this souldnt be the problem.
autosuspend (Note: Its also open source)
If anything is unclear, misleading or if you have further questions please let me know :)