Does Lenovo not supply firmware updates through LVFS (sudo fwupdmgr refresh → sudo fwupdmgr get-updates)?
Anyway, to find out why suspends are different one from another, you need to take a look at the logs at the time of the wake-up. Use Gnome Logs or journalctl.
If the firmware cannot be updated from linux using the provided tools, there is a ‘live’ boot method to provide a windows environment to perform the upgrade of bios/firmware (winpe).
I have used hirensbootcd