The sprag works by rollers wedging between the driver and the driven rings. When they get stuck so the friction can't roll them into the correct position against the springs, the starter won't engage.
Because you need some friction in there, I would avoid using anything with lubricating qualities, you want some friction and drag on the rollers for them to engage. I'm pretty sure that WD40 is probably working against you, as well as any type of penetrating oil. I would use something like a nonflammable brake cleaner to flush out the crap that may be causing the rollers to stick. I wouldn't be stingy with it, give it 3 or 4 good shots an hour or so apart. Once the starter is working I'm going to change the oil and remove it.
Second, while the cover is removed I'd try to get in there with a brass brazing rod and GENTLY tap it with a small hammer to loosen the rollers after the cleaner has had overnight to work.
Last, I'd pull the spark plugs so the starter has less resistance to running once it starts to work. I'd let it spin the engine for a good ten to fifteen seconds to make sure everything is loosened up. I'd do several spins before putting the plugs back, and then trying to start. Then let it run for fifteen minutes with a fan on the cylinder head and exhaust headers. That will further circulate the brake cleaner. I also like the idea of running with the Rislone detergent during this procedure.
Once the starter spins the engine reliably, drain the oil and change the filter. I would use Shell Rotella T6 full synthetic, 10w40 or whatever it is these days. Walmart has it for $23 a gallon.