You've got two separate effects here you must explain. Let's condense the data.
σ
O-O (142 kJ/mol) < σ
S-S (268 kJ/mol)
π
O-O (356 kJ/mol) > π
S-S (84 kJ/mol)
The bond strength is dependent on really three basic factors in the MO approximation: overlap of the atomic orbitals, coulombic repulsion/attraction, and an exchange factor. Ignoring exchange for a moment, you can rationalize the effects above using only coulombic effects and overlap effects. Consider: in hydrogen peroxide, like all peroxides, are unstable. But disulfide bonds (S-S) are ubiquitous in biological systems (proteins). Why? In both cases, the O's and S's have multiple lone pairs of electrons. What happens do you think to two heteroatoms bearing lone pairs when they are brought in close proximity to each other? The lone pairs repel each other. This weakens the bond between the heteroatoms. But because oxygen is smaller than sulphur, the lone pairs are closer to each other in the O-O bond than in S-S, thus the repulsion effect is stronger in O-O bonds, which weakens the O-O sigma bond compared to S-S. This is why oxygen does not form long sigma chains and instead prefers to form double bonds with itself: though here we do still have repulsion, look at the positioning of the lone pairs in O=O versus X-O-O-X: repulsion is reduced, plus the pi-bond has great overlap. Of course, O=O is itself a strong oxidant and reactions to form water and CO
2 with hydrocarbons are thermodynamically favorable (although the reactions are kinetically slow). Why? Because C=O bonds are considerably more stable than O=O bonds (~800 kJ/mol vs 498 kJ/mol) by minimization of coulombic repulsion of the lone pairs. Coulombic repulsion is also why the N-N bond is weak, although it's not as weak as O-O bond because nitrogen only has a single lone pair compared to oxygen. Carbon, which has no lone pairs at all, forms very strong sigma bonds, and pi-bonds too, both with other carbons and with heteroatoms.
Now on to S=S. Here we run into the opposite problem. The valence orbitals of sulphur are far more diffuse than those of oxygen (3p vs. 2p). While this helps minimize lone pair repulsion in the case of sulphur, it also minimizes orbital overlap. This is particularly the case in the pi-bonds, which are formed by overlap of orbitals which are directed perpendicular to the bonding axis. Pi-bonds are often less stable than sigma bonds, when lone pair repulsion is not at issue, for this reason, as in the case of carbon-carbon single vs. double bonds. You'll notice that silicon does not tend to form long sigma bonded chains like carbon does, and orbital overlap this one reason - the Si-Si bond energy is only about 63% what the carbon-carbon energy is, and the Si=Si bond is probably even a smaller fraction of the C=C bond energy. This is also probably why silicon-based life forms are unlikely. True, sulphur (and phosphorous, its neighbor) does form short chains, but the S-S single bond is still quite a bit less than carbon, and overlap is likely the reason - so it's not an effect that's only manifested in the pi-bonds.
So, to sum up: O=O is prefered over O-O because of minimization of lone pair repulsion. S-S is preferred over S=S because of poor pi-bonding overlap of the 3p orbitals.
Regardging your specific question about pi bonds being weaker than sigma bonds: it depends. Double bonds are stronger than single bonds, because double bonds contain a sigma AND a pi bond, but single bonds only contain a sigma bond. To determine thermodynamic stability, we need to compare to a reference point. Yes, S=S is stronger than S-S, so why does sulphur prefer to form, for example, S-S-S-S? This is because three S-S single bonds (3*268 = 804 kJ/mol) is more stable than 2 S=S double bonds (2*268 + 2*84 = 2*352 = 704 kJ/mol). Likewise, while hydrogen peroxide does exist, the one O-O single bond and two O-H single bonds are ~107 kJ/mol less stable than the bonds in the products (half an oxygen-oxygen double bond and 2 O-H single bonds in water, for H
2O
2 0.5 O
2 + H
2O).
Whether or not an individual sigma bond is stronger or weaker than an individual pi bond will depend on the lone pair (Coulombic) repulsion and overlap considerations. In some cases - as in O=O vs O-O, the pi bond is stronger than the sigma bond. In other cases (S=S vs S-S), the sigma bond is the stronger bond. Do bear in mind these are approximations. O
2 does not exist really with a single sigma bond, so there's not a direct comparison to be made with the numbers I provided in the post above to the usual MO diagrams drawn from diatomic oxygen, in which the lowest bonding orbital is the sigma. These are all kind of handy-waving arguments, in other words.