Mac Sierra won't boot - SmartBattery: finished polling type 4

Had the same issue and found the solution here: https://discussions.apple.com/thread/7787207?start=0&tstart=0

Quotes:

Now that I look a bit more closely, the issue may be a corrupt .kext file as I get two busy timeout [x] (60s) kextd wait(1): messages with corrupt garbage characters listed just at the start of the infinite SmartBattery messages.

Not convinced the battery is really the issue as the machine will boot quite happily when using another boot disk or USB drive and the SmartBattery checks in those boot logs are really no different. To me it looks like the boot process has hung at the kextd and the endless SmartBattery messages are the OS just passing the time waiting for a response to the kextd daemon its never going to get.

Your (and my) problem is because auf a KEXT file which is not compatible to 10.12.2 - the software isn't clever enough to ignore this, so you have to do it yourself. There are some ways. I made it this way:
Start into Recovery HD, Open Terminal, write down:

mkdir /Volumes/"Macintosh HD"/kextbackup
cd /Volumes/"Macintosh HD"/System/Library/Extensions

look for .kext files which are not part of the normal system

mv KEXTNAME.kext /Volumes/"Macintosh HD"/kextbackup/

I removed the following and after this the system booted again.

Belcarra.USBLAN_netpart.kext
Belcarra.USBLAN_usbpart.kext
HuaweiDataCardDriver.kext
JMicronATA.kext
RemoteControl.USBLAN_usbpart.kext
UsbEthernetGadget.kext
USBExpressCardCantWake_Huawei.kext
vecLib.kext

Of course everybody has his own not compatible kext files in this folder. Actually you can't do anything wrong by just moving them to another place... But I would recommend you not to move any of the APPLE*.kext files and the IO*.kext files. Other files with not that normal names, I would move and try to start.... At the moment my Sound is not working.. So I moved one kext too much, but anyway... I can write this.. in Safari on my Macbook Pro Retina....

EDIT: This worked for me. Note that I also had no sound but got it back after moving back "vecLib.kext" (by again returning to recovery mode and moving it back from the kextbackup-folder), so try to keep that in place from the beginning :)