Procrastination pushes you to wait to do a task until you find the optimal amount of time you know you need left, while doing it in the most relevant environment.
For example, If I code or design something to early it is more likely that research, marketing or product direction could have changed, causing a percentage or all of my work to become moot.
However, If I wait to do my work until I know I have just enough time left, I find my work is the most relevant and least likely to require changes of substance due to shifts of other parties.
I whole heartedly advocate for procrastination due to this. Its a beneficial decision making response that we should stop fighting.