So no, its not guaranteed that they will have any time available.
Right, but it's their entire purpose, so presumably they usually work. Moreover, I'm not talking about "session managers" as such, but rather just well-behaving Linux systems.
I just whipped up a simple test application that sleeps for some time in an infinite loop and logs signals. I tested in a VM with a modern systemd-using distro (Elementary) and it indeed seems to wait around 90 seconds before truly killing the process. I also made it voluntarily quit after around 10 seconds after receiving the signals and the system waited around 10 seconds, and then rebooted.
Of course none of it means it's guaranteed, but it shows that the system does as expected in the common case.