What is the difference between $\omega$ and $\aleph_0$?
You’re talking about two different operations. In $\omega+\omega\ne\omega$ you’re talking about ordinal addition; in $\aleph_0+\aleph_0=\aleph_0$ you’re talking about cardinal addition. When you consider $\omega$ as a cardinal number and perform cardinal arithmetic on it, $\omega+\omega=\omega$. Similarly, the ordinal sum $\omega_1+\omega$ is the ordinal $\omega_1+\omega$, not the ordinal $\omega_1$, but the cardinal sum $\omega_1+\omega$ is the cardinal $\omega_1$.
Those of us who use the $\omega_\alpha$ notation for both ordinals and cardinals must either rely on context to distinguish ordinal and cardinal arithmetic or explicitly specify which one is being used.
In standard set theory, they are the same set, but seen from different perspectives. The notation $\omega$ emphasizes that it is an ordinal number, whereas the notation $\aleph_0$ emphasizes its role as a cardinal number.
Now whereas $\omega$ and $\aleph_0$ are two different notations for the same set, $+$ and $+$ is the same notation being used for two different operations. The meaning of "$+$" depends on whether we're adding ordinals or cardinals.
Some books use $+_o$ and $+_c$ for ordinal and cardinal addition, but in everyday semi-informal mathematics we just write $+$ for both and let it depend on context which one is meant. (Which is one reason why it is useful to have two different notations for $\mathbb N$ used as an ordinal and cardinal, respectively).
$\omega$ is a well ordered set, while $\aleph_0$ is the cardinality of that set. $|\omega|=\aleph_0$. As I've been informed, since $\omega$ is an initial ordinal, it is also considered a cardinal number, so indeed $\omega=\aleph_0$, and $|\omega|=\aleph_0$. However, when we use ordinal arithmetic $|\omega+\omega|=\aleph_0$ as well, even though $\omega+\omega\neq \omega$.