I've encountered the same issue for years.
The first step was setting a time limit. So now I set a time frame. The latest project is a raised flower/vegetable bed. DD and SIL will be here Saturday for yard help. So that's the time limit. Then I start thinking how I want it built. Ask him what materials we have laying around and ask for an inventory, negotiating a time frame. In this case it's today. (Forgot to say, he'll drop my project in an instant for a project for DD-use that to my advantage.) I get my measurements and start figuring out how to make this work. Discuss with DD. (He just walked by the window and I think he got the inventory.) Yes! We got a plan. So I set the next time frame. (I guess what I'm saying is I give him 1 short step, reconnect, make a plan and get him on the next step)
The first project I started to get somewhere was remodeling some space in our living room. We lived with exposed studs for years. Then I gave an ultimatum, "Hire a contractor in a week, or I'm moving out." So now it's, do _________ within timeframe, or I'll hire a contractor. And I follow through.
Another option is, "Will you help me with _____________ within a timeframe?" If he says no, I find another way to get it done. And I stay on it until all the clean up is finished. Yes, it's cost $$$. But the up side is, the project is finished, I'm not living with a disaster stareing at me, and we argue a lot less.
One of the keys is, I drop whatever I'm doing when he's ready for the next step. I'm committed or I don't ask him.