SPARK-847 + SPARK-845: Zombie workers and negative cores

I can split these up if necessary, but they are closely related.

Also fixes the milliseconds instead of seconds logging buglet for timed-out workers.