"Who you send a message to" is actually a relationship between two pieces of information, a sender and a recipient but Signal doesn't collect this in most cases.
Who the message they received is _to_ in the sense of which Signal account it's for, they need to know in order to store it and pass it on. But who you were they don't need in most cases because of their Sealed Sender feature.
When you converse with Alice your phone fetches profile data that it is able to unlock because Alice's phone agrees you're a friend and provided the key to do so. Alice's profile includes tokens that her friends can use to send her messages. Subsequently your phone presents a token authorising you to send messages to her, and so Signal does not ask it to identify itself when sending this message.
As a result Signal intentionally does not learn who sent these routine messages between friends and acquaintances even though the message recipient can determine who sent them.
And, by extension, the exact real world identity and location of this person.
Signal promises not to store metadata, but definitively have access to it.
Not at all? Most likely what's happened here is that you don't understand what "by extension" does in a sentence.
Hopefully the difference about having access to data and storing data is still clear?
Apart from that, group membership is also E2EE, which is a signifiant piece of metadata.
What metadata are you talking about?