Infinite loop (getting in/out of a volume without moving) is found on the surface of G4Sphare for charged particles with multiple scattering process. This infinite loop does not occur for neutral particle nor charged geantino. The sample program, output lists, etc. are posted on http://www.slac.stanford.edu/~hirofumi/myprog.html
The problem was in the definition of G4Sphere. One should use G4/CLHEP constants like pi/M_PI rather than fixed values with limited accuracy. G4VSolid* spher_solid = new G4Sphere ("ScintiDome", Rin_spher, Rin_spher + thick_spher, 0, 2*pi, // 2*3.1415926535, 0, 2*pi); // 2*3.1415926535);