Wooh, got it!
I continued reading about getUpdatePacket and onDataPacket, and stumbled over @diesieben07's post on the matter:
I was certain I had to handle all the data through getUpdateTag and onDataPacket, but seems like the data first has to be sent through getUpdateTag (which is then processed by handleUpdateTag). I still still struggle with wrapping my head around exactly how it works, but I think I'm starting to grasp the concept.
Here's the latest, working version. Some of the code has been optimized and moved around since last time.
DynamiteBlock:
DynamiteTileEntity:
Thanks a lot for helping out, poopoodice!