The issue is that the width won't be set automatically. The webassist upload sets it, but if you put the validation after that it will have already uploaded the file.
The solution is to set the width manually using the getimagesize() function.
If you add this code above the validation:
<?php
if (isset($_FILES)) {
$image_info = getimagesize($_FILES["nhImageUpload"]["tmp_name"]);
$_FILES["nhImageUpload"]["width"] = $image_info[0];
}
?>
That should add the width attribute to the files array and allow you to validate it.