So, the CharacterMovement->Velocity, how is it used? is velocity’s value expected to be movement per second, and after the second passes velocity is set to 0?
Velocity is maintained across multiple frames and is updated according to external accelerations (input, path following etc.) in UCharacterMovementComponent::CalcVelocity. This function applies also friction etc. to reduce velocity each tick.
As far as I know, Velocity is not cleared each frame.
Velocity is set directly in a few locations (such as UCharacterMovementComponent::DoJump).