In answering my own question I have decide to go the pure SQL query route as WP runs too many queries in fetching a post and its attached post thumbnail, in addition to fetching and building meta for that thumbnail.
Here is the code I ended up with:
$query2 = "SELECT post.ID, post.post_title, thumbnail_url.meta_value as thumbnail_url
FROM $wpdb->posts as post
LEFT OUTER JOIN $wpdb->postmeta as thumbnail
ON post.ID = thumbnail.post_id AND thumbnail.meta_key = '_thumbnail_id'
LEFT OUTER JOIN $wpdb->postmeta as thumbnail_url
ON thumbnail.meta_value = thumbnail_url.post_id
AND thumbnail_url.meta_key = '_wp_attached_file'
WHERE 1 = 1
AND post.post_type="zxy_movie"
AND post.post_status="publish"
ORDER BY post.post_title ASC";
$posts = $wpdb->get_results( $query2, OBJECT );
Please note: This is still and expensive query and I do not recommend it on large sites.