can you explain what's the error/reason that failed with the GD library? Is there an error message?
I have no idea about the rest as these are applications bloated IMO.
A straight forward sequence is: file is uploaded in a folder, when the image file is requested the thumbnailer generates the thumbnail file once. Thereafter it simply loads it. So there is no difference in speed with creating the thumbs on upload. In fact if the thumb is never requested it doesn't need to exist.
Some php thumb code that I play around with, uses just few lines for this functionality you described. For a jpg with the GD library imagecreatejpeg, imagejpeg and imagecopyresampled functions should be sufficient. Do these functions work in your server?