If you're still wondering how to complete this quest, forget everything you've just read. Also, if your issue is that you absorb the dragon souls, and not Miraak, this isn't for you.
To kill the "glitched" Miraak, all you have to do is fly the original dragon over to him. Then either don't land, or jump back on the dragon and hit r3 a lot.
The goal here is to let the dragon you're riding die to get it out of the equation.
When he absorbs that soul, beat Miraak down in any way you like. ( I found the most powerful weapons to work best. I used a crossbow that one hits anything. )
Now when he gets beat down, he'll go to the middle and act like he is stuck. He's not, come on, I can't be the first one to figure this out.
Use bend will on his dragon until it comes down, and slay it for him to absorb that soul as well.
If done correctly, battle will resume, and you can kill Miraak once and for all!
I can't take all the credit though, the person above me, A Fandom User, led me to this conclusion in a way.
There are only 2 dragons, and you really only need one. If you have the companion perk from he black book, you obviously can't hurt the dragon you ride in.
Also, you don't need to wait for anything. Just fly in, get your dragon killed, and beat him down. Bend will his dragon, beat it, and beat him again. SIMPLE!!
Hope this helps.