Did you try increasing the sleep timer before you try to add the default gw? Another thing we need to check if you are able to ping 192.168.2.1 before adding it as gateway.
Make a copy of your script and edit it as follows:
/usr/bin/killall -9 pppd
/usr/sbin/pptpsetup --delete pptp0
/bin/ping -c 5 test.com
/usr/sbin/pptpsetup --create pptp0 --server test.com --username user --password **** --start
/bin/ping -c 5 192.168.2.1
if [ $? = 0 ]
/sbin/route add -host 192.168.2.9 gw 192.168.2.1 dev ppp0
echo "Cannot ping gateway unable to add route"
This will let us know where the script is failing when running via cron. One more thing that I would like to know as to how you have setup your cron for executing this script.