I have a signature. That signature was then signed by someone else.
If I pass this doubly-signed message as an argument to my function, is there a way to recover both signers?
Depends on how you structure this but I am assuming you have an initial message, and the second signature's message hash is the first signature itself.
If this is the case, you would have to know the dynamically created signature which I presume you pass as the message hash of the second message; then you would have to know the message hash of the first message.
You do this to recover two addresses...but "double signing" would be a bit redundant at that point when you could simply have a function that takes and
ecrecover's two separate signatures and get the same result with less complexity.