I have exactly the same problem with CU 7. Permissions seem to be applied anyway.
If I recycle the ECPAppPool hours later to stop the cpu intensive (w3wp.exe) hang condition, I get this stack in event log:
System.Threading.ThreadAbortException: Thread was being aborted.
at System.Linq.Buffer`1.ToArray()
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Microsoft.Exchange.Management.ControlPanel.PowerShellResults.MergeErrors(PowerShellResults results)
at Microsoft.Exchange.Management.DDIService.Workflow.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
at Microsoft.Exchange.Management.DDIService.WSSingleObjectDataHandler.ExecuteCore(Workflow workflow)
at Microsoft.Exchange.Management.DDIService.WSDataHandler.<Execute>b__2()
at Microsoft.Exchange.Management.ControlPanel.AsyncServiceManager.<>c__DisplayClass4.<InvokeAsyncCore>b__3(Object state)
at System.Linq.Buffer`1.ToArray()
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Microsoft.Exchange.Management.ControlPanel.PowerShellResults.MergeErrors(PowerShellResults results)
at Microsoft.Exchange.Management.DDIService.Workflow.Run(DataRow input, DataTable dataTable, DataObjectStore store, Type codeBehind, UpdateTableDelegate updateTableDelegate)
at Microsoft.Exchange.Management.DDIService.WSSingleObjectDataHandler.ExecuteCore(Workflow workflow)
at Microsoft.Exchange.Management.DDIService.WSDataHandler.<Execute>b__2()
at Microsoft.Exchange.Management.ControlPanel.AsyncServiceManager.<>c__DisplayClass4.<InvokeAsyncCore>b__3(Object state)
.
Command: 'SetObject'