I doubt there’s one single bottleneck, but I do agree it seems like your collisions are on the heavy side. Note that you can scale the PStats graph vertically by clicking and dragging within the graph area, if needed, to see the top of a big graph, or to make more detail visible in a small graph.
Seems like you’re testing an awful lot of collision volumes. That means you would probably benefit from running egg-octree on your collision mesh, and/or reducing the complexity of your collision mesh.
That question could mean a lot of things. Let me answer two of them and see if I guess your question correctly.
(1) “Into” objects will only be tested against if they remain in the scene graph. However, hide() does not remove them from the scene graph, it only stops them from being rendered; they are still available to collisions. You can use detach() or stash() to both remove them from collisions as well as making them invisible.
(2) “From” objects–objects that you have added to the CollisionTraverser–will always be tested against, whether they are in the scene graph or not. You have to explicitly remove them from the CollisionTraverser to disable them.