Brad Bowman
Mega Patron

As far as the script itself, each time it runs it is going to create one sc_task record for each record in your u_catalog_workflow_activities table retrieved.  You could add a log to the script if you are uncertain how many records the GlideRecord is retrieving.  If the workflow is where you removed a loop, have you confirmed that there is now only one path to this Run Script activity, and are you testing with a newly-created record?  Existing requests will continue to use the workflow as it existed when the request was created.