This should do the trick:
global $wpdb;
$parent = 1; // Make sure it's int (intval() it) as it's not escaped in the query
$posts = $wpdb->get_results(
"SELECT `post_id` AS `ID`, `meta_value` AS `Progress` FROM {$wpdb->postmeta}
WHERE `meta_key`='task_progress' AND `meta_value` < 100 AND `ID` IN
(SELECT `post_id` FROM {$wpdb->posts} WHERE `post_parent`={$parent})
ORDER BY `meta_value` DESC, `post_id` DESC;" // Sort descending
);
foreach($posts as $post){
$progress = $post->Progress;
$post = get_post($ID = $post->ID);
// Print here
}
Regards.