I just ran into this as well.
Here is my temp solution until epic has a more full featured fix. This version has the added benefit of not needing to subclass the CMC, specifying game level components. Unfortunately there will still be issues where the CMC only accounts for Mesh in other parts of the code, but that is okay for us right now. Thanks all!
void UCharacterMovementComponent::TickCharacterPose(float DeltaTime)
{
…
if (GetWorld()->HasBegunPlay())
{
[INDENT] TArray<UActorComponent*> skeletalMeshComponents = CharacterOwner->GetComponentsByClass(USkeletalMeshComponent::StaticClass());
for (auto& Component : skeletalMeshComponents)
{
[INDENT] check(Component->IsA(USkeletalMeshComponent::StaticClass()));
USkeletalMeshComponent skelMesh = (USkeletalMeshComponent)Component;
// skip CharacterOwner->Mesh since it is already ticked
if ((skelMesh != CharacterOwner->Mesh) && skelMesh->IsActive() && !skelMesh->bHiddenInGame)
{
[INDENT]skelMesh->TickPose(DeltaTime);
}[/INDENT]
}[/INDENT]
}
[/INDENT]