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/email.py
self.to.append(f'"{name}" <{address}>' if name else address)
    def send(self) -> None:
        if not self.to:
            raise ValueError("No recipients provided! Use EmailMessage.add_recipient() first!")
        messages: List = []
        for dest in self.to:
            email_message = mail.EmailMultiAlternatives(
                subject=self.subject, body=self.txt_body, to=[dest], headers=self.headers,
            )
            email_message.attach_alternative(self.html_body, "text/html")
            messages.append(email_message)
        connection = None
        try:
            connection = mail.get_connection()
            connection.open()
            connection.send_messages(messages)
        except Exception as e:
            
            
            capture_exception(e)
        finally:
            
            try:
                connection.close()  
            except Exception:
                pass