I'm wondering whether the signals should be handled inside or outside of the transaction.

Technically, this is backwards incompatible, as an exception in a post signal handler will prevent the object from being saved, which isn't the case currently.

My distaste and distrust for signals pushes me to keep them outside of transactions, but I haven't thought a lot about it and there are probably good arguments either way.