Вам не нужно разные django.wsgi использовать, просто нужно чтобы роутинг в дажанге работал с учетом поддоменов.
Вот пример пакета для поддержки роутинга по поддоменам: django-subdomains
Задайте кастомную форму для админки и перегрузите у нее метод clean. В этом методе проверяйте все что нужно и в случае ошибки кидайте эксепшн forms.ValidationError.
Изучите хорошо Python (без привязки к веб-разработке), почитайте того же Лутца.
А Django пожалуй лучше начать изучать по офф. документации, там и туториал для новичков есть.
Если я правильно понял задачу, то вы можете из генератора получить список ID объектов и потом queryset составить с IN: Model.objects.filter(id__in=ids), где ids - список id полученных из генератора.
Вы хотите видеть результат в real-time? Т.е. чтобы в браузере показывался вывод всего результата, по окончанию работы команды или постепенно, аналогично тому, как показывается вывод в консоли?
Проблема в том, что в админке приходится долго ждать, пока письма отправятся, я правильно понял? Если да, то рекомендую в админке только запускать команду, которая будет выполнять рассылку в фоне. Например, это можно сделать при помощи Celery.
Как вариант, можно верстать шаблоны документов в html. После того как пользователь отредактировал документ — рендерить его в pdf, например при помощи phantomjs.
Redis sentinel смотрели?
Я сам не пробовал, но они пишут, что в случае падения мастера происходит назначение нового мастера из слейвов. Это, по-идее, сделает решение более отказоустойчивым.
А для масштабирования, можно легко организовать шардинг. Для этого даже есть специальный пакет для python.