Whenever my Pixel 8 runs out of battery, GrapheneOS gets stuck in a boot cycle. When its in this cycle, the battery doesn't seem to charge at all.
As suggested by someone on these forums, I have to boot into fastboot mode in order for the phone to charge. This works, but it would be better if the OS can handle battery drains more gracefully so it can recover state. Perhaps save state, and shut down the phone when it reaches 2%. Another way to go is to power down the phone when expected power down time at current battery level is near remaining battery life plus some buffer.