Temporarily connect a jumper cable from the battery ground terminal to the bellhousing or any place on the engine, then try to crank the engine. It sounds like you're losing a ground from the engine to the chassis. There is SUPPOSED to be a ground strap from the bellhousing to the body and/or frame.
Most of us run a long battery ground cable all the way to one of the bolts that attach the starter, or at least to a bellhousing attaching bolt. Then run a smaller ground strap to the body to get a good circuit for lights, heater motor, etc.
Jerry
I have a ground strap from bolt on starter to frame and other ground is from battery negative terminal to frame. The lights work fine. Doing nothing but reconnecting the battery cables, the starter ran but slowly for about 10 secs and now nothing. Lights still work. Fluke DMM shows 12.34V across battery. Seems very strange. Will test starter isolated from truck and see what happens.