The most efficient way is to be surrounded by people who don't speak your language but who also have a social reason to be interested in you. Complicated to explain, but buddying up with people to do language exchange is pretty garbage. The goals are fundamentally at odds for both parties so there is always this weird tug of war and the partnerships in my experience don't last because of it. It's not a friendship, so you're not in natural situations and the "so what did you do last weekend" small talk is just that. Small talk. Building real relationships works magic. Make friends on the other hand and hang out with them all the time and shit starts to accelerate pretty quick. The tricky part is actually making friends because before you can really speak you just aren't interesting. But if you can solve for that, and there are ways, then it's the sweet spot.
This. My German accelerated massively when I actually was friends with German students at my school. We'd get beyond the small talk and have deep and meaningful conversations, and the slang I learned has turned out to be invaluable.