Main issue the restart delay fixes is that services don't wait for X to
be ready on startup (which is bad if the application being started
requires X being ready to actually work.)
I have still not found a way to work around waiting for X being ready
other then the ugly delay hack (for systemd --user modules at least).
However, the delay can be --- in most cases --- smaller than 5 seconds.
All my machines start reasonably fast and have X up and running from
pressing login to staring at the wallpaper in a couple seconds at most.
If services don't start correctly and the error is X not being ready,
increase the startup delay once again.
Dropdown services need an X server to connect to and fail autostarting
if there's no available server.
HACK
Increasing their restart timer will alleviate this problem, *but* it
also means the dropdowns will start more slowly when closed by the user.
There should be another way to alleviate one issue (start automatically
after X is available) without exacerbating the other (restart when you
have been closed).