So, I tried zeroing the linear damping, static and kinetic friction, but it didn't help.
I also tried increasing the velocity, and from a certain value the character did move, but it moved way too far... Any thoughts?
Also, is there any way to allow the capsule to rotate only on the Y-axis? Without rotation on the Y-axis, it seems the character can't slide against walls...
All of those issues seem to be related to friction. Note that the friction of two surfaces is averaged together by default, so setting the character's friction to zero won't fully remove friction. Changing the friction blender to multiplicative or picking the minimum would ensure that the object has no friction.
Another way to manage friction is to use an event to force a pair's blended friction to zero. This is what the characters do with the RemoveFriction function.
is there any way to allow the capsule to rotate only on the Y-axis?
Yes; by setting only the first and third rows of the local inertia tensor inverse to zeroes, the object will still rotate around the Y axis. However, when friction is present, this is not a proper solution. While it might be able to slide better sometimes, the character will act like a flywheel. So if the character spins up, the next time it hits a wall will introduce unintuitive linear motion.
I looked into the character controllers in the demo and they are very nice, however I'm not sure I'll be able to integrate them into my game engine so easily... But I'll take a look.
Making a full featured, robust character controller is one of the more difficult projects in game physics thanks to all the little behaviors required (particularly stepping). Unless there is a fundamental mismatch between the character and the project's requirements, using the already-built one will almost certainly save some time.