How does SO2 have 2 π bonds?
Yes, you are right. One electron from 3p orbital is unpaired and excited to a 3d orbital. The hybridization of sulfur atom is sp2 hence a lone pair and two bond pairs(due to sigma bonding) reside in these hybrid orbitals.

The unpaired electrons are 3p and 3d hybridized orbitals are used in pi bonding with oxygen's unhybridized 2p orbitals. Hence two pi bonds are formed which are p-p pi and d-p pi bonds. Because of delocalisation these bonds are identical and have properties intermediate to the two different pi bonds.

To understand how the electron is able to make a jump with high energy difference, you will have to understand that d orbitals usually participate in bonding only when central atom is joined to many highly electronegative atoms. Because of polarization, there is a slight positive charge on the sulfur atom due to which orbital contract. This contraction is very very significant in d orbitals. Because of this electrons can be excited to the less energetic and tightly held d orbital. Also, the bonds formed will have a greater extent of overlap because d orbitals are not that diffused anymore. This is the reason that PF5 exists but PH5 does not.

Also, note that we cannot use dz^2 orbital for pi bonds as its lobes have the same phase and hence net overlap during pi bond will become zero.