Use activate in SMS sending
The main purpose of these changes is to activate call to portal_sms.send; This way it is isolated it in a transaction that is less likely to fail. Activate with max_retry=0 and conflict_retry=False not to send activity twice in case of error.
There are other cleanups, see individuals commits.