This has been one of the most popular and well-received posts I've ever written (the other being the "Redux and Context" post I wrote earlier this year [0]).
I think this one started out at about 5000 words, and I've kept adding to it over time so that it's now about 8500. I actually have several more updates I need to make, including covering some of the changes in React 18. Hopefully will get to those sometime during this holiday break.
The other deep-dive post I typically recommend is Dan Abramov's "Complete Guide to `useEffect`" [1].
I'm also happy to say that a decent chunk of this information is now part of the new React beta docs [2], which are absolutely amazing. They're not complete yet, but they're already vastly better than the previous docs, and we now routinely point new React learners to the beta docs as a starting point.
[0] https://blog.isquaredsoftware.com/2021/01/context-redux-diff...