Lately I have come across this problem.
I will have my DTS complete and working correctly. I will then have to go back and add a task in the middle of the path. Usually and SQL or Active X. But for what ever reason the task gets execuited last.
The only way I have found to fix this is to delete all my "On Completion" steps. Then readd them all.
I have also set the package properties to only do 1 task at a time.
Any thoughts?