There are many ways to do it, I would, add an skeletal mesh to the main character, spawn it behind your character as you said, every tick you set its location smoothly by using the function vinterpto the parameters are( the current companion location, your characters back location, get World delta seconds, a function that moves faster according to how far both characters are from each other, the further they are, the faster it should try to reach your character).
When you press shift you can do a lot of things, scale it from 0 to normal size, spawn it inmediatly by setting its visibility to true etc, it all depends in how you want it to look.