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/tasks/email.py
churned_ratio / last_week_churn_ratio - 1 if last_week_churn_ratio else None  
        )
        message = EmailMessage(
            f"PostHog weekly report for {period_start.strftime('%b %d, %Y')} to {period_end.strftime('%b %d')}",
            "weekly_report",
            {
                "preheader": f"Your PostHog weekly report is ready! Your team had {compact_number(active_users_count)} active users last week! 🎉",
                "team": team.name,
                "period_start": period_start,
                "period_end": period_end,
                "active_users": active_users_count,
                "active_users_delta": active_users_count / last_week_users_count - 1
                if last_week_users_count > 0
                else None,
                "user_distribution": {
                    "new": not_last_week_users.filter(person__created_at__gte=period_start).count()
                    / active_users_count,
                    "retained": active_users.intersection(last_week_users).count() / active_users_count,
                    "resurrected": not_last_week_users.filter(person__created_at__lt=period_start).count()
                    / active_users_count,
                },
                "churned_users": {"abs": churned_count, "ratio": churned_ratio, "delta": churned_delta},
            },
        )
        for user in team.organization.members.all():
            # T
            message.add_recipient(user.email, user.first_name)
        # T
        message.send()