I ran into this case few times where if I restart the server, it will automatically delete all tasks that are due before today. I'm not familiar with the setup much but are there any possible configuration that might cause this?
This was due to the workflow having a timer event with a date where it canceled itself when past the duedate. Not sure why it only deleted itself only when I restart the service but removing that part from the workflow fixed it (Didn't need that part in the workflow anyway).