You are being very abstract. If you could give some examples, the answers could be more useful for you. There is no universal reason of procrastination. There are some principles, but each time they are applied a little differently.
With the abstract information you've provided, I would go with option
try to learn where I went wrong and what made me go wrong?
Being more conscious about the problem is never a bad thing. Once you figure out what is wrong really, then you can reward-punish yourself if it helps you to learn the new behavior.
Really, try to be more specific. Your description can easily apply both to having a smoke and to staging a grand theft. The solution will be different in each case.