Proxy vs Library Override
I would use a proxy if you want to keep everything as light as possible. As for the light, you could put it in a different collection in the character file so it doesn't get linked in and then append the light so it's locally in your animation file.
Library Overrides are like an advanced proxy technique. Yes, every single object gets imported and that can be a little overwhelming at the beginning. So you could just add a new child collection in the character file where you throw all the objects in to organize the outliner a bit better. Library overrides have the huge advantage that you can still access each part on its own so you could add modifiers on them in the animation file. Another usecase would be if you're using render layers and you want to separate your character to different layers. For example: I'm working on a vfx shot with a drone that has a laser beam. Using library overrides I can put the laser beam on its own render layer and bring it back in compositing to control the intensity of it.