I tried several things like:
- Remove all code except for a throw new Exception() - SSIS Script task STILL freezes
- Change the project target back to .NET 2.0 from 3.5 (after removing all code) - SSIS Script task STILL freezes
- Remove all variables from the Script Task properties - VOILA!
I eventually worked out that a Package Level variable that i'd defined named "DBConnectionString" would stop exceptions from being bubbled up to the parent package and freeze the task when it was marked as either a Read-Write Variable and a Read-Only variable in the script task properties. I removed this variable definition from the script task properties and all exceptions started to bubble up correctly.
I tried to reproduce the issue in a completely new package with no success (on the production 64 bit environment and my 32 bit dev machine). It doesn't appear to be related to the variable name or the value of that variable.
This is just a warning to all those who encounter this unfortunate Script task freezing issue in SSIS. It may also have the appearance of being in an infinite loop as the whole package just sits there and will NEVER complete.