sudo killall dpd works quite well! It seems like it is not working, because ps -ax still lists dpd as a running process. But, when calling pmset, the not on "prevented by dpd" is missing:
pmset -g | grep sleep
sleep 10 (sleep prevented by sharingd, ...
It is linked to FileVault in that Bluetooth pairings are stored per user, not per machine. So until you login (and thus unlock your account) the machine cannot re-pair to your devices. Keyboard backlight settings are also stored per user for some reason, so no backlight until you login. Since sleep doesn't log you out, everything still works.
A related issue ...
I decided to do some digging into the kernel source and I have a rough answer, but it's still not 100% clear. If you take a look at IOHibernateIO.cpp inside the IOHibernateSystemPostWake method you see the following call (note: slightly different for 10.11+, but the same function ends up being called)
if (kFSOpened == gFSState)
// invalidate &...