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.