Comparing Dates from custom field

Well, the exact server time/timestamp can be retrieve with current_time function. And comparing your date format, it would need to be Ymd. So combining these two thing, the proper comparison for you should be –

$key = get_post_meta( $post->ID, 'Due', true );
$date = date('Ymd', current_time('timestamp') );

if( $key >= $date )
{
    // note to retrive the post thumbnail, you need to use get_the_post_thumbnail,
    // as the_post_thumbnail function actually echo the output
    $html .= get_the_post_thumbnail(null, 'medium');
}
else 
{
    $html .= '<img src="http://exampleimage.com" alt="">';
}
return $html;

Now, there could be one question in which timezone you are saving the date in the post meta. If the value is sanitized with the server time (as the post_date value is saved), then this is perfect comparison.