Official Workaround for 14.04 upgrade kernel panic
As listed in LaunchPad, response #32
https://bugs.launchpad.net/ubuntu/+source/upstart/+bug/1269731
1) Disable upstart re-exec whilst running the upgrade:
$ sudo su -
# mkdir /root/bin
# ln -s /bin/true /root/bin/telinit
# chmod 755 /root/bin/telinit
# export PATH=/root/bin:$PATH
# dpkg --configure -a && sudo apt-get update && sudo apt-get upgrade
With many thanks to James Hunt for the answer.
Old Answer
I was able to reboot, log back in and type
sudo dpkg --configure -a
to get the package manager in a stable state. If I saw it doing anything to DKMS or kernel modules, I hit Ctrl-C. Once that completed, I then typed this:
sudo apt-get purge dkms
That should remove DKMS and the associated modules that are causing the crash. For me, it was the wl-broadcom drivers (when I was supposed to be using b43 + firmwarecutter)
If it doesn't happen at the same point in the upgrade process, (e.g. before a dkms kernel module), then you may have some type of hardware failure. Typically it is disk, but it could be RAM. Run an old version of PartedMagic or SystemRescueCd, and check out the SMART values on your disk. Remember, there's a failure bathtub curve - lots of failures when the drive is ew, levels off a bit, and then spikes back up as the drive ages. Used to be drive failure MTBF (mean time between failures) started to pick up at 40,000 - or about 4.5 years. However, this was the 90s, when drives were meant to last 5 years. Judging by the average warranty these days, drives are meant to last 2 - 3 years. If you get anything more than that, you are lucky.
So, good luck, and I hope a drive failure is not what you are observing. Hopefully you configured your /home directories on another partition so that you can wipe / without wiping home (or can transplant it to another drive). I wonder why distros don't suggest this by default?