Scaling your simulation is the best way, but not too small. Moving objects that are < 0.2 units in any dimension could result in tunneling, so plan accordingly.
I've had to scale my simulation by 2 because my smallest gun is a pistol that has a width of 0.1 and I was having a really hard time getting the thing to reliably land on any surface.
Oh I got my character controller working, trick is to setup the SimTickCallback to iterate through all the contact manifolds and apply game logic to what is happening if the character.
For example, for my character controller to have 'falling' damage (or 'impulse damage', like when an object going fast hits it), I check all the manifolds for if the character's body is colliding, if it is I check the impulse on the character's body. if it is above a certain threshold, i apply damage equal to the amount over the threshold. So if a rock gets thrown at me really fast, i die. If i fall off a 20 ft cliff, i get like 1/2 health damage. The sliding effect deals with the normal of the contact point being at a certain angle. If it's too steep, i set the player's friction to 0 so it slides back down.
...you'll never know what it's like, living your whole life in a dream...