Fix release from #1860 (hotfix #1934).

- Cron job to send weekly email report is processed multiple times. Review scheduling process to send to only one worker.
- Implement mechanism to ensure each email is sent only once to each recipient.
- Improve the way the async task is processed by creating a separate task for each organization, instead of processing all organizations in a single task.
posthog/test/test_email.py
super().setUp()
        self.organization = Organization.objects.create()
        self.team = Team.objects.create(organization=self.organization, name="The Bakery")
        self.user = User.objects.create(email="test@posthog.com")
        self.user2 = User.objects.create(email="test2@posthog.com")
        self.organization.members.add(self.user)
        self.organization.members.add(self.user2)
        last_week = datetime.datetime(2020, 9, 17, 3, 22, tzinfo=pytz.UTC)
        two_weeks_ago = datetime.datetime(2020, 9, 8, 19, 54, tzinfo=pytz.UTC)
        self.persons: List = [self.create_person(self.team, str(i)) for i in range(0, 7)]
        
        self.persons[0].created_at = timezone.now() - datetime.timedelta(weeks=3)
        self.persons[0].save()
        self.persons[1].created_at = timezone.now() - datetime.timedelta(weeks=4)
        self.persons[1].save()
        Event.objects.create(team=self.team, timestamp=last_week, distinct_id=0)
        Event.objects.create(team=self.team, timestamp=last_week, distinct_id=1)
        
        Event.objects.create(team=self.team, timestamp=last_week, distinct_id=2)
        Event.objects.create(team=self.team, timestamp=two_weeks_ago, distinct_id=2)
        Event.objects.create(team=self.team, timestamp=last_week, distinct_id=3)
        Event.objects.create(team=self.team, timestamp=two_weeks_ago, distinct_id=3)
        Event.objects.create(team=self.team, timestamp=last_week, distinct_id=4)
        Event.objects.create(team=self.team, timestamp=two_weeks_ago, distinct_id=4)
        
        Event.objects.create(team=self.team, timestamp=last_week, distinct_id=5)
        Event.objects.create(team=self.team, timestamp=last_week, distinct_id=5)
        
        Event.objects.create(team=self.team, timestamp=two_weeks_ago, distinct_id=6)
    def test_cant_send_emails_if_not_properly_configured(self) -> None: