The character doesn’t simulate physics, so the engine doesn’t really calculate impulse for character collisions, that’s why the interaction with physics objects is sometimes really inaccurate.
As for the heavy cube, it seems to me that the engine calculates if the character can move based on the forward vector, and not on the entire capsule collision, because once the center of the capsule (facing the movement vector) passes the edge of the cube, the character starts moving faster and pushes the cube.
Frankly, I don’t know how to fix that, I’ll just wait here and see if someone has any workarounds for any of the two issues above.