I usually descend by dumping all my air and sinking.
That's your mistake right there.
How I teach this in my OW course is as follows.
1) after preparing to descend, (sign, checking instruments, etc. etc. ) then we initially start the decent in a vertical position while facing each other. We start venting air until our head is completely covered by water and then STOP venting air from the BCD and breathe out.
2) as soon as we are under water and breathing out we lay forward and get into the diving position. Since we were facing each other the laying forward causes us to get closer, not farther away, during this step.
3) Once we're a couple of metres under water we breathe in again to STOP the descent and we PAUSE.
4) during the pause we just hover briefly, give OK signs to each other and then continue diving (assuming there are no problems, of course). We actually dive down the rest of our descent after the pause. That means that we get side by side and swim down together at the same tempo and direction.
5) As we change depth the slowest diver determines the tempo for both buddies. The rest of the descent is done at a tempo at which you can arrest your descent at any point by either just breathing in or breathing in and giving a short burst of air into your BCD.
So this is the way I teach this. I start practicing this way of descending on day 1 so that by the time we get outside it's starting to get automated. We need to do this or the divers would lose track of their buddy during every descent in the visibility we have.
I'm very particular about teaching new divers to descend in this way because the descent is the most common time to lose track of your buddy. Moreover, if you have trouble with anything, like ears, then it's absolutely paramount that you can stop the descent quickly and easily, for example, by simply breathing in and giving your BCD a quick shot of air.
I would stay vertical and fin up to slow my descend. When the waves or current or finning would rotate me or bring me further from my buddy, I would just swim closer to my buddy. Doing this allowed me to descend and keep visual contact with my buddy.
Getting closer to your buddy isn't a problem. Just reach out an put a hand on their shoulder so you don't bump into them.
Then I found out that this was all wrong and the "correct" way of descending was in a horizontal position and using breathing to control descend rates.
After two tries, I didn't have much success. I was able to descend as much as 5 ft but found myself being tossed around by the waves and current. When trying to establish visual contact with my buddy, the swimming would just bring me back up to the surface. Rinse and repeat.
If the swimming is bringing you back to the surface then you are not in a diving position. You're still too vertical. You really need to lay down flat and keep your feet still if you want to descent horizontally and just use breathing. The way I described above is more forgiving than what you've been told because you don't have to be completely still. You can still swim as long as you swim together with your buddy.
R..