Using authenticated encryption along with signing I know of a project that implemented e2e encryption using both authenticated encryption and public key signing. So the ciphertext produced for a message would be:
ciphertext = signature_Ed25519 + nonce + mac_Poly1305 + XSalsa20(plaintext)

I struggle to understand what the benefits of doing both could be, as MAC is already there to authenticate the sender. Any ideas?

The full flow is as follows:
Alice and Bob each have an X25519 encryption key pair for talking to each other.
Alice has an Ed25519 signing key pair that is used for everybody.

Alice sends a message to Bob:
1. encrypted = crypto_box(plaintext, nonce, bob_publickey, alice_secretkey)

This is provided by crypto_box().
encrypted is now = nonce + mac_Poly1305 + XSalsa20(plaintext)
2. ciphertext = crypto_sign(encryted, alice_signing_secretkey)

This is provided by crypto_sign().
ciphertext is now = signature_Ed25519 + encrypted
Signatures provide one property that MACs don't: non-repudiation. With only a MAC (or an AEAD) any party with the secret key could have sent the message. So Bob could forge a message and claim Alice sent it. With a signature only the party holding the corresponding private key could have created the signature.  MACs authenticate the message, not the sender.
When this property is needed one must accept the performance decrease of adding the signature. If this property isn't needed, then there's no need to sign.