I know this is an old question, but I wanted to put in my two cents as well. Plus this QA is still popping up on Google. So... yeah.
Using Animation Layers with 2D Sprites is still useful. Just not in the way you the OP was trying. You might put the legs in layer1, the body in layer2, and the eyes in layer3. You'd have to re-implement the decision on which way the sprite is facing. But the legs could go walking while the arms are idle, or while the arms are swinging. Or the legs could be idle regardless of the arms state. And then the eyes could blink randomly regardless of whatever else you're doing.
So the whole purpose of those layers is trying to desync the animations.
I'm actually trying to look up the same thing as the OP so I can use layers from the LPC character creator to dynamically create characters. Demonstration and Sprite Sources
And I want to do this without going overboard on resources. I'm not entirely certain how I'll go about it, but here's an idea for it:
A script automatically generates and keeps track of children sprites. If there's a sprite object that it doesn't know about on the character, it will delete it when it updates the sprites on the object. There is one Animator Controller base. There will be like... 5 to 20 children sprites per character. Every sprite has an Animator Override Controller. The script that keeps track of the multiple sprites/controllers will iterate through the list to change/trigger parameters on all the controllers, based on one change/trigger given to the script.
I need to test how resource intensive this is. I also need to test how in-sync it is. If it's not in-sync enough, I'll need to add a reset trigger maybe...
In addition to that, I'm in the middle of writing an EditorScript to automatically process LPC animation textures, slice them into sprites, and animate them so they're all identical for any given selection of textures.
If the animations have slightly different timings though, the shared controller override idea would fail. The second option I'm looking at is making my own animator of sorts that just runs on a schedule and changes all the sprites based on an array passed in. But for some spritesheets (doesn't include a particular motion), it would require repacking, which I don't really want to do very much. So my auto-animator makes more sense than that...