OK I think I see the problem.
You are starting a new copy of dallas.py every 40 minutes, not running dallas.py once every 40 minutes.
Which means after a few hours there well be multiple copies running. If each copy sends a reading, it would not take long to exceed the limit for the day.
To see that, open a new terminal window and run the commend
ps -aef |grep dallas
I think you will get more than one dallas.py program is in memory running.
The documented cron process is to run the program restarter.py. That program runs once and dies. What it does, is tests to see if dallas.py is running, if it is, all is well. If dallas.py is not running it will start dallas.py. That insures only one copy is running. Details are at
https://projects.privateeyepi.com/automate-your-alarm.php
Glenn