I'll offer some info:
Blender must be using a btCompoundShape under the hood for that simulation. There is no way it would bounce like that otherwise.
When using Bullet there is no way to use a fundamentally concave shape type for simulation of a dynamic object. The only solution is to use a convex shape, or btCompoundShape with many convex sub-shapes.
As to your specific task at hand:
You might be able to get better results with some tricks:
(1) Understand the collision margin. There are some default collision margins in the Bullet simulation and if the dimensions of the important details of your model are near those margins then you'll get unexpected results and easier tunneling. If you haven't heard about these margins yet you could watch this video
. The default margin is around 0.04m (as I recall, dunno if Blender messes with that), which means your smallest important "flange" must be several multiples of that dimension before the simulation will start to look "correct".
(2) Artificially scale the dimensions AND time units. If your mechanism is naturally "small" then maybe you should artificially increase the dimension of the model to be 10x or 100x. You could adjust the acceleration of gravity and the unit of time accordingly to still get a realistic simulation, however under this scenario you might not be able to run the simulation in real-time: it might fall slower than real time. This might be ok if you're trying to make a movie of he result rather than have the object be interactive. However, if you run the simulation at 1000Hz (with double-precision, dunno what precision Blender would be using) and you didn't have too many other objects in the simulation I don't see why you couldn't make a 100x scaled version run in real-time on a modern machine.
(3) Use a Good convex decomposition shape approximation. The default VHACD algorithm produces convex hulls. By necessity convex hulls have a finite number of points that define their hull and as such their quality is limited for parts that do not have any facets (such as a round dowel). If you were to use an explici btCylinderShape for key subshapes of your collision shape then you would have better results. There are other subtler tricks about avoiding "hidden" faces between two neighboring convex hulls of the same shape that can help make your approximate shape more correct. I believe a hand-tuned convex decomposition of your model could improve the simulation a lot.
(4) Use a hinge constraint, or a sliding hinge constraint at pivot points. If it is an indisputable fact that your mechanism must spin at a particular point then you could create a constraint to assert that truth.
(5) Finally I'll point out that if you want "correct as possible" physics then you need to compute the correct inertia tensors for your RigidBodies. This means you would need to supply offset transforms to orient your local intertia tensor such that its eigenvectors align with the local cardinal axes (e.g. along local X, Y, and Z -- Bullet assumes this is true, so you must make it so). This isn't a concern if you just need it to look good enough to fool the human eye.