Yeah the solution is to just move it further. Changing units wouldn’t really matter, you’d just be dealing with even smaller numbers. Look at UMovementComponent::ResolvePenetration() and UMovementComponent::GetPenetrationAdjustment(), which do something like this, using global epsilon values.
Moving world origin is an expensive operation, especially once the number of actors in the level starts increasing.