I am working on a very in depth guide to Twilio development, which covers this. Short version: unborked division of responsibilities between web app, cron jobs, and queues. I now check for validity prior to execution in addition to before insertion. I also have a few new failsafes, including automatic rate limiting that would have stopped the DOS if it were possible to schedule it now.