От Subscription е проходна таблица за m2m връзка между Post и Subscriber , когато поръчвате в поле на Subscription самия модел, всички публикации се показват като отделни редове в набора от резултати и затова получавате s_count=1 защото всяка публикация с конкретен абонат е уникална.
Трябва да анотирате Post обекти с най-новата date_subscribed от всички subscribers и след това поръчайте в анотирано поле:
posts = Post.objects.annotate(
s_count=Count('subscribers'),
s_date_max=Max('subscription__date_subscribed')
).order_by('-s_count', '-s_date_max')
АКТУАЛИЗИРАНЕ за следващия въпрос:
Ако използвате count() метод, той ще върне броя на Posts . Можете да видите, че ще се различава от броя, който получавате от len(queryset.values_list('s_count', 'subscription__date_subscribed')) тъй като в този момент отделните стойности за дати са извлечени в набора от резултати.