Reviving this thread because i'm getting the same problem as you. I have a test case set up for debugging this at
https://github.com/jazztickets/btestLike you, i have the internal edge utility set up and it appears to be working (i.e. m_normalWorldOnB is getting corrected). However, when the friction constraints get resolved there's an impulse that gets applied that is not colinear with m_normalWorldOnB. Obviously Erwin can speak on this matter better than anyone, so i'm going to issue a bug report with all the data i've collected.
I tracked it down to be m_tmpSolverBodyPool.m_data[1].m_deltaLinearVelocity.m_floats[0] inside btSequentialImpulseConstraintSolver.cpp that influences the sphere.
The only the thing that i found that solves the internal edge problem is using a very small time step (500 to 1000 hz).
EDIT:
Video of bug:
http://www.youtube.com/watch?v=71jd0g6PsdE