Refactor duplication of lightweight activities

[#55911802]

Make it safer:
- use transactions
- use bang version of save (due to transactions, rollback can be performed)
- it also ensures that sequence duplication will be handled correctly
  when duplication of activity fails