I'm not the ultimate expert on this--just a homebrewer, but here's the way I do it. I assume you are fly sparging--if you're batch sparging, it shouldn't be an issue.
After vorlauf, I let down the liquid level til it's maybe a half inch above the bed. Then add sparge water, try to keep the level an inch or two or more above the bed. I control the runoff rate with the outlet valve (approximately, using a measuring cup & timer, then eyeballing the stream) so that the whole sparge takes about 1 hour. When the kettle's nearing the expected level, or runoff is looking pretty weak, start tasting & testing the runoff. Usually, when I start to check it's about 1.020 & I usually don't have to stop before my sparge water is gone. Last batch I made I stopped at 1.015, since I had plenty of volume and gravity in the kettle already.
Since the last batch I made was very light in color, I acidifyed my sparge for the first time--Used brunwater spreadsheet, which called for 1.7 ml of lactic acid, which is maybe a quarter-teaspoon? I only went down to 7 on pH. (tap water is about 7.3)
If you are pretty sure tannins are the problem, you could do an extract batch as a control & see how that comes out.
I made a stout a couple batches ago & it's not great--I didn't pay that much attention to water & maybe got the mash too hot. I think it finished around 1.028. (OG around 1.068, I think) One of the few beers I made that I just don't really want more of, even if I want one. So I can relate.