TLS was designed and standardized before cryptography figured out the proper order of encryption and authentication, or, for that matter, that authentication was even required. It dates back to an era where designs based on what were best practices at the time often eschewed authentication (of plaintext or ciphertext) altogether; instead, designers assumed that because attackers didn't have crypto keys, they couldn't tamper with ciphertexts, because their decryptions would result in gibberish.
A few years after SSL3/TLS, it was widely understood that cryptosystems required authentication (the "gibberish decryption" defense is often just a speed bump). And then it was mathematically proven that there's a proper order to the two operations: cryptosystems should encrypt, then they should authenticate the ciphertext. Doing it this way (among other things) denies attackers the opportunity to conduct chosen ciphertext attacks, which in turn closes off a variety of side channels (such as error oracles, which were introduced in the symmetric crypto literature a few years after this).
The net result is that the old TLS ciphersuites are a mess with regards to encryption and authentication. They do authenticate, using HMAC (which is fine) in a generic composition. But they authenticate plaintext, which means attackers can play games with ciphertexts; one result of this was the Lucky 13 padding oracle attack.
AES-GCM and ChaCha20-Poly1305 are modern authenticated cipher constructions. They are conceptually very similar. Both are stream ciphers (and, in fact, both are designs based on the concept of "CTR [counter] mode"). Both use polynomial MACs instead of cryptographic hash MACs (you can think of a poly MAC as a thermonuclear CRC algorithm). AES-GCM is very fast in hardware (because it's a NIST standard that chipset vendors have optimized for). ChaCha20-Poly1305 was designed to be fast in software as well.
Another bit of backstory you might want to know concerns the italicized "very difficult" Langley used to describe software AES-GCM. AES-GCM uses a poly MAC that wants GF(2^n) multiplication and modular reduction. Fast software implementations of GCM rely heavily on lookup tables. Lookup tables entries are aggressively cached as they're hit, which makes the timing of software AES-GCM heavily dependent on specific bit values of secrets, which is dangerous.