I put a Speed Feed stock from an M1S90, on my M4. It's the shortest "tactical" version. The stock was cheap, like $30.00 From CDNN.
The recoil spring tube on the M4 is wider than the M1 tube, so it requires some work on the stock. I used a cheap brake cylinder hone, wrapped in 80 grit sand paper, and an electric drill to open up the hole in the stock. It took quite awhile, but with better tools, I think it would go quick.
Mounted the stock with a couple of washers, and a metric bolt, cut to fit. The only down side, is that to remove the stock, you have to take the butt plate off, and remove the bolt. Eliminating the quick change feature.
Not as good looking as the factory stock, but very functional.