Оказывается, демон не спал. Это был цикл без сна 30 секунд между ходами. Спасибо Аарон.
Я исправил это, изменив свой код на это:
class MyDaemon(Daemon):
def run(self):
while True:
try:
do_my_data_processing()
time.sleep(30)
except MySQLdb.OperationalError:
# Sleep an extra 30 seconds if database is away.
time.sleep(30)