How do I keep the two objects from penetrating each other in Blender?
The problem is that the surface Normals are facing inwards and this is breaking the collision.
To resolve this, select each object and go into Edit mode (Tab), select all (A) and select Mesh/Normals/Recalculate Outside. This should re-calculate the normals so that they are consistent with a solid object. Once you have done this for both objects, re-run the simulation and the collision should now be working correctly.
Bad normals

Good normals