Sidenote: both shutdown & halt/poweroff (usually) do a sync

. We tend to stick a manual one before just in case, but it shouldn't be needed.
You could try
poweroff instead. Or even
poweroff -f, which might be a tad more aggressive, even though I have no idea how that interacts with upstart.
It just happens to be necessary on Kobo to avoid a deadlock on some kernels...
EDIT: Ha! It's essentially the same recommendation as @ilovejedd

. poweroff => shutdown -P now