Keyframe object's active material from material slots
Mixing/Switching Material in the node editor is probably the best solution for you.


Create two distinct materials. We will switch/fade between these two.
Create a third material: "mix". Activate nodes for this material (marked red).
In the node editor, create one material node with the first material and one with the second material. Connect them to a MixRGB node.
You can animate the material influence with the Factor slider of the MixRGB node in the third material.


After keyframing the Mix node, they keys will show up in the dopesheet.


  
  You can still assign the first two materials to other objects.
  You can add more mix nodes in the "mix" material to switch between more materials.
  The material keyframes don't update in the viewport, but will render correctly.