Du hast da mit 3 Millionen Vertexen aber auch eine Hausnummer, zumindest für eine Szene bei der, zumindest mir, nicht ersichtlich ist wo die alle sind.
Mit 20 Minuten bist du prinzipiell, wie Tiles schon ausführte, zwar noch gut dabei, aber besonders wenn es um die Animation geht wirst du da kaum Land gewinnen.
Ohne die Szene zu sehen ist es schwer zu sagen, wo sich das Ganze bei dir optimieren ließe; deshalb würde ich dir einfach empfehlen, ein paar Videos oder Artikel zum Thema (Cycles optimieren - Renderzeiten reduzieren) zu schauen. Da werden so Sachen wie Samples, Light Bounces u.Ä. angesprochen, die massiv die Renderzeit beeinflussen, aber es gibt auch einige weniger ersichtliche Kniffe, um zu optimieren.
Zusätzlich dazu bist du mit 2.79 halt auch noch auf dem Stand von vor 2 Jahren, mittlerweile hat sich auch bei den Updates genug getan, dass ein Wechseln in höchstem Maße zu empfehlen ist.
Wenn du alles rausholen willst würde ich auch einfach mal 2.92 (derzeit nur in Alpha!) erwähnen, das die Performance von Cycles bei Nutzung von GPU+CPU nochmal merklich verbessert. Das ist aber, wie das ganze Thema, dann hardwareabhängig.
Ansonsten gibt es noch sog. Renderfarmen, bei denen du dein Projekt hochlädst und deine frames von dafür dedizierten Rechnern bekommst. Eine kostenlose, nutzerbetriebene Platform wäre z.B.
SheepIt.