Let g be a nonzero element in M. Zero is a submodule of M that does not contain g. Take the union of an ascending chain of submodules missing g to find an even larger submodule missing g. Using zorn's lemma, let W be a maximal submodule of M that misses g.
Let T be a submodule such that T*W = M. If T is not simple than it is the cross product of submodules T1 and T2. Since W is maximal, W*T1 spans g, and W*T2 also spans g. Now W, T1, and T2 are linearly independent, so g belongs to W. This is a contradiction, hence T is a simple module.
Using the above lemma, we will show that M is semisimple iff it is spanned by simple modules. We need the axiom of choice in both directions, unless M is countable.
Assume M is semisimple. Let U be the submodule of M that is spanned by all the simple submodules inside M. If U is not M, write M = U*W, whence W is a nontrivial semisimple module. By the above lemma, W contains a simple module, which is a contradiction. Therefore M is spanned by simple modules.
Here is another lemma that will help with the converse. Let U and V be submodules inside M. If U and V intersect in something other than 0, we can write x-x = 0, where x is the common element. This means U and V are not independent. Conversely, if U and V are not independent, write x+y = 0, where x comes from U and y comes from V. Thus y = -x, and V also contains x. Submodules are disjoint (intersecting only in 0) iff they are linearly independent.
If U and V are submodules, and V is simple, then V is disjoint from U, or contained in U. Anything else would produce a proper submodule of V.
Now, assume M is spanned by simple modules, and let U be an arbitrary proper submodule of M. since all the simple modules are not inside U, let S be a simple module disjoint from U. This is the beginning of a chain of increasing sets of independent simple modules, that are independent of U. At each step, bring in another independent simple module. It is independent of all the simple modules that have come before, and the new span remains disjoint from U. If you have built an infinite ascending chain, take the union to find an even larger set of independent simple modules. Their span remains disjoint from U, so we're ok. By zorn's lemma, there is a maximal set of independent simple modules that are also independent of U. Let V be the direct sum of these simple modules, i.e. their span.
We know U and V are independent. If they span all of M then U is a summand of M, and we are done. Suppose U*V misses x. Everything in M is spanned by simple modules, including x. Write x as a finite sum of nonzero elements drawn from simple modules. At least one of these elements is separate from U and from V, else x would lie in the span of U and V. Let the "separate" element belong to the simple module C. Now C is not contained in U, or in V. Since C is simple, it is independent of U and V. We could add C to our collection of simple modules missing U. This contradicts the maximality of our set. Thus U*V spans all of M, and M is semisimple.
In summary, M is semisimple iff it is spanned by simple modules. In fact, M is the direct sum of simple modules. You can see this by setting U = 0 in the above proof.
As a corollary, the direct sum of semisimple modules is semisimple. Each is a direct sum of simple modules, and the result is a direct sum of simple modules, which is semisimple.