I have a dual-boot setup with MacOS and Arch Linux on my Macbook Pro mid-2009 17-inch.
I have rEFInd boot manager installed to my EFI System Partition as EFI/BOOT/bootx64.efi with a simple, nearly default config that allows me to choose Arch Linux or MacOS on boot. Awesome!
Arch Linux is loaded via EFI stub and I have the ability to hibernate and resume to it by using a swap file and kernel parameter resume=.... I can even hibernate Arch Linux, turn on the computer, choose MacOS through rEFInd (or even through the built in boot manager by holding the option key), which boots MacOS, and I can later shut down MacOS and resume Arch Linux from hibernate by selecting it in rEFInd at the next boot.
What I would love is to be able to do the same thing with my MacOS side, that is, hibernate MacOS, boot Arch Linux, to later resume MacOS. However it seems that when I sleep my MacOS side to hibernate (see man pmset for how to tell MacOS to hibernate), when I turn the power on, the resume process bypasses any boot selection I can make! That is, holding option doesn't bring up the boot manager, and it begins MacOS resume right away.
I have tried ensuring that my EFI System Partition is the first choice of the boot manager by holding control and clicking the EFI System Partition at startup (after holding option to get into the boot manager), but this has no effect.
This page seems relevant, but doesn't explicitly discuss what you can do with how MacOS bypasses the boot manager on hibernation resume.