The set "action=" was there for a reason, as you've discovered
With each file, it unsets the variable via set "action=", then it sets that variable if the hour of the DateCreated is less than 8 or greater than 18. Since you've changed it to always set the variable, it now deletes every file.
I'd expect that what is seen as a hang may be that it is processing many files which do not meet the criteria. It will only output information when it deletes files.
Also, regarding your original notes regarding modification dates, You can change the DateCreated line reference to this to change the date being used:
>> "%temp%\fhour.vbs" echo wscript.echo Hour (f.DateLastModified)