set of almost complex structures on $\mathbb R^4$ as two disjoint spheres
As you noted, $M$ is not diffeomorphic to $S^2\coprod S^2$ for dimension reasons.
On the other hand, what is true is $M$ is homotopy equivalent to $S^2 \coprod S^2$.
(The following argument is partly adapted from a paper of Montgomery)
To see this, it's enough to show that $Gl^+(4,\mathbb{R})/Gl(2,\mathbb{C})$ is homotopy equivalent to $S^2$, where $Gl^+$ denotes those matrices of positive determinant.
Now, consider the subgroups $U(2)\subseteq Gl(2,\mathbb{C})$ and $SO(4)\subseteq Gl^+(4,\mathbb{R})$.
It's relatively well known that $Gl(2,\mathbb{C})$ is diffeomorphic to $U(2)\times \mathbb{R}^4$ and that $Gl^+(4,\mathbb{R})$ is diffeomorphic to $SO(4)\times \mathbb{R}^{10}$. Further, in the usual inclusion $Gl(2,\mathbb{C})\rightarrow Gl^+(4,\mathbb{R})$, $U(2)$ becomes a subgroup of $SO(4)$.
Now, the chain of subgroups $U(2)\subseteq SO(4)\subseteq Gl^+(4,\mathbb{R})$ gives rise to a homogeneous fibration $$SO(4)/U(2)\rightarrow Gl^+(4,\mathbb{R})/U(2)\rightarrow Gl^+(4,\mathbb{R})/SO(4).$$ In light of the above diffeomorphisms, $Gl^+(4,\mathbb{R})/SO(4)$ is diffeomorphic to $\mathbb{R}^{10}$. Since Euclidean spaces are contractible, it follows that the fibration is trivial, so $Gl^+(4,\mathbb{R})/U(2)$ is diffeomorphic to $SO(4)/U(2)\times \mathbb{R}^{10}$. In particular, $SO(4)/U(2)$ is homotopy equivalent to $Gl^+(4,\mathbb{R})/U(2)$.
Now, consider the chain of subgroups $U(2)\subseteq Gl(2,\mathbb{C})\subseteq Gl^+(4,\mathbb{R})$. This gives rise to a homogeneous fibration $$Gl(2,\mathbb{C})/U(2)\rightarrow Gl^+(4,\mathbb{R})/U(2) \rightarrow Gl^+(4,\mathbb{R})/Gl(2,\mathbb{C}).$$ In this case, the fiber is diffeomoprhic to $\mathbb{R}^4$, which immediately implies that $Gl^+(4,\mathbb{R})/U(2)$ is homotopy equivalent to $Gl^+(4,\mathbb{R})/Gl(2,\mathbb{C})$.
Putting the last two paragraphs together, we now know that $SO(4)/U(2)$ is homotopy equivalent to $Gl^+(4,\mathbb{R})/Gl(2,\mathbb{C})$.
To finish off the argument, we need to show that $SO(4)/U(2)$ is diffeomorphic to $S^2$.
To see this, first note that $U(2)$ intersects the center $Z(SO(4)) = \{\pm I\}$ of $SO(4)$. It follows that $$SO(4)/U(2) \cong [SO(4)/Z(SO(4)]/[U(2)/(Z(SO(4))\cap U(2))].$$
But $SO(4)/Z(SO(4))\cong SO(3)\times SO(3)$ and $U(2)/(Z(SO(4))\cap U(2)) \cong SO(3)\times S^1$. So, $SO(4)/U(2)\cong (SO(3)\times SO(3))/(SO(3)\times S^1)\cong SO(3)/S^1$.
But the standard action of $SO(3)$ on $S^2$ is transitive with stabilizer $S^1$, so $SO(3)/S^1 \cong S^2$.