YogaSMC.kext, hier werden alle Lenovo spezifische (F1-F12) Keys wie vorgesehen unterstütz.
Inklusive der Brightness Keys? BrightnessKeys.kext arbeitet anders als YogaSMC, bei letzterem gibt es häufig Probleme beim auslesen der Register auf IdeaPads. Dadurch sind dann die Brightness-Keys sehr unresponsive. Ich hatte gesehen, dass du BrightnessKeys.kext und YogaSMC.kext nutzt, wollte nur wissen ob das eventuell damit zu tun hat, dass YogaSMC alleine nicht zuverlässig genug ist.
Werde aber mal bei Gelegenheit oder Urlaub das näher angehen und testen was der Unterschied zu Windows ist.
Hier ist mir bei mir selbst leider ein ziemlicher unterschied aufgefallen. Habe schon verschiedenste Bemühungen erbracht um die Akkulaufzeit unter macOS zu verbessern, teilweise mit Erfolg. Aber die Win Laufzeit der IdeaPads konnte ich leider nicht wirklich erreichen 
Hibernation ist nicht unkompliziert. Generell sollte das mit OC aber möglich sein.
Wichtig ist natürlich, dass das HibernateFile nicht schreibgeschützt ist, wie das bei anderen Methoden gerne gemacht wird.
Die nächste Frage ist dann, ob IOHibernateRTCVariables in den RTC geschrieben wird. Dafür darf kein RTC Patch aktiv sein, der den RTC auf 128 Bytes limitiert. Wenn ein solcher RTC Patch aber nötig ist, sollte er entweder durch RTCMemoryFixup ersetzt werden, wobei die Offsets 0x80 bis 0xAB nicht gesperrt werden dürfen (hier wird IOHibernateRTCVariables gespeichert), oder es muss HibernationFixup genutzt werden.
HibernationFixup erlaubt das Auslesen von IOHibernateRTCVariables aus dem NVRam. Hierfür muss natürlich der NVRam zuverlässig funktionieren.
HibernateMode in Opencore am besten auf Auto stellen, dann wird sowohl der NVRam, als auch RTC beachtet.
ReservedMemory ist die nächste Baustelle, hier am besten einfach mal Sleep mit aktiviertem CSM testen (sofern möglich) und schauen ob es einen Unterschied macht.
Auch die Optionen ResetHwSig und ThirdPartyDrives sind ein Versuch wert.
Hibernation ist leider keine einfache Nummer, das ist eindeutig...