I’ve been finishing up my dash install in my LS Swapped BMW 2012 128i. I’m using a Raspberry PI 5 with 16gb RAM (8GB is probably fine I just had it) and an NVMe SSD. I know one of the struggles with the PI installs is graceful startup/shutdown. The BMW, and many modern cars, have multiple B+ circuits that change from awake to sleep/sleep to awake on programmed timings. For the BMW, there are at least three (technically there are 4 or more but 3 useful):
Terminal 30 - always hot with 12v
Terminal 30g - hot when the CAS (one of the computers) wakes up, triggered by several possible events depending on model and options
Terminal 30 switched - hot on initiation start/run on the key (or button)
Other cars likely have something similar so you’ll need to investigate.
Knowing the above we have some choices that allow the PI to be powered/shutdown in several scenarios, including doing it gracefully. My version is below. I’m using a Waveshare 8inch LCD and powering it separately from the PI so I can control it with different timings.
Hopefully this will help or at least get you to thinking.