途中から失礼します。
基本的な部分になりますが、cronに指定したスクリプトが起動されているか確認されたのでしょうか。起動されていなければ、スクリプトをどのように変更しても意味がありません。
ちなみにAppleの開発者向け情報では、電源オフかスリープ中であった場合は次の指定時刻まで実行されない、と書かれています。その代替として推奨されているのがlaunchdです。cronを利用するよりハードルは高いですが、こちらはスリープ中に指定時刻になった場合はスリープが解除された際に実行されるので、参考にされてはいかがでしょうか。(下記のページにはサンプルコードも記載されています)
以下、Daemons and Services Programming Guide - Scheduling Timed Jobsより抜粋
If the system is turned off or asleep,
cron
jobs do not execute; they will not run until the next designated time occurs.
If you schedule a
launchd
job by setting the
StartCalendarInterval
key and the computer is asleep when the job should have run, your job will run when the computer wakes up. However, if the machine is off when the job should have run, the job does not execute until the next designated time occurs.
All other
launchd
jobs are skipped when the computer is turned off or asleep; they will not run until the next designated time occurs.
Consequently, if the computer is always off at the job’s scheduled time, both
cron
jobs and
launchd
jobs never run. For example, if you always turn your computer off at night, a job scheduled to run at 1 A.M. will never be run.
ちなみに、
> do shell script "echo " & myPassword & "| sudo -S /usr/bin/pmset -a sleep 0 displaysleep 0"
このスクリプトは意図通りに動作しません。
sudoコマンドはパスワードを使用中の入力デバイスから取得するのでパイプで標準入力から渡してもパスワードとして渡されません。(実行するコマンドへの入力として渡されます
> do shell script "/usr/bin/caffeinate -u -t 180 &"
また、caffeinate ですが、時間指定のかわりに実行するコマンドを引数として渡すことで、そのコマンドの実行中はスリープしないようにもできます。(詳しくは「man caffeinate」を参照ください)
以上、ご参考まで。