Проблема с потоками не в GIL, а в том, что Django не является потокобезопасным.
Если вы заказываете выполнение проекта, например, с оплатой за проект или у вас в штате один программист - в этом случае нужно рассматривать только самые популярные языки в связке с самыми популярными фреймворками, например Python + Django/Flask, PHP + Laravel и т.д.
Минус в том, что в отличие от многопоточности, нельзя просто вжжжжжжух и сделать код асинхронным.
Он должен писаться как асинхронный с самого начала, с прицелом на исполнение в реакторе.
и каким же боком вызов filter() читается хуже
ends = [w[-n:] for w in words]
new_words = [w for w in words if ends.count(w[-n:]) == 1]