An open subset of $\mathbb{R}$ is an at-most-countable union of disjoint open intervals

Your proof works. Perhaps the only thing which needs a bit more elaboration is why such "maximal" intervals exist. The only proper way to think about maximality is with respect to set inclusion, in other words for $a \in S$, $I_a$ is the unique open interval which contains every open interval contained in $S$ and containing $a$. So we define $I_a$ as follows: $$I_a = \bigcup_{I \text{ is an open sub-interval of $S$ and $a \in I$}} I$$

We know that the union of arbitrarily many connected sets (i.e. intervals) which have at least one point in common is also connected, so $I_a$ is an interval. It is open as the union of open sets.