Can multiple characters share a base rig but still use custom bones?
After you generate a rigify rig, it becomes a standard armature, that can be edited adding new bones and parenting them to the appropriate bones. 

The only thing to consider is that the Rigify rig is quite complicated, it has a bone layer with all, normally hidden, deform bones, a couple of layers containing "service" and "machinary" bones, and a lot of layers which organize all control bones (thoose who have custom shapes). 

To avoid problems of interference with the structure of the rig, I think it's better not to move, rotate or scale any bone of the original rig, and use the deforming bones (those who contain "DEF" in their name) as parents of your added bones. You can find them in one of the last bone layers (normally hidden, you have to atcivate it in the bone layers tab of the armature properties panel).

 

If you perefer to have a separate rig (and animation) for your added bones you can use copy transform constraint (in world space). In example you create  a head bone in the exact same place of Rigify head bone, set a copy transform constraint with the rigify DEFhead bone as target, and use it as parent for your ears bones.