Change hand off execution notification to the end

Right now upstream notification occurs at the beginning. This results in the vis. manager update message being sent before the transaction is committed, and is causing issues with the new tighter concurrency bounds.

Given that each call to this assumes that all of the work for the notification has been done, it should happen after this method is complete, not before.
Ensure that regenerate occurs inside a transaction

In a bunch of case it wasn't doing. This code was sufficient to move it on to the right thread, but not move it into a transaction, which was causing the regenerate calls inside Element.X to barf

I'm not happy with this, as if something forces a transaction close between the two lines it'll still fail