I'm trying to get my custom (resized) image to create the file on upload instead of when you open the template.
Maybe it would help if you explain what you are trying to achieve?
My instinct would be to say the template methods are written as part of Silverstripe by the Dev's, so are integrated better, in terms of performance.
Of course, I would like to think that is true, but I can't guarantee it :). Also, I believe using the template functions automatically references the resized image back to the source image that you uploaded, where as if you were using gd, you would have to do that yourself. That might not be an issue for you though.
Not sure that makes sense... Hopefully it does :).