Can’t help you on yarn. But I would give New Salem, Illinois a try. It’s the village where Lincoln lived for five years in his batchelor days. It’s mostly been recreated, but the demonstrations are accurate, and it’s a beautiful area.
If you can’t get enough of Lincoln, there’s Springfield, Illinois. Sites a-plenty.
Used to be a yarn store in Ottawa, Illinois…site of the first Lincoln/Douglas debate and some nice historical things to see there. Plus, just a few miles east is Starved Rock State Park with some great trails, the Illinois River and Starved Rock with some great Indian legend/lore. Might be nice to stop and spend a night there at the lodge, or very nearby the park is the Grand Bear resort which would be fun to overnight as well.
I have no way to judge, but the locals around here swear by the Ben Franklin in Webster Grovesfor all types of craft stuff. I guess that includes yarn.
A bonus is that it’s right off I-44, so you can pop off the highway and see whether it’s worth your time. If it’s not, you jump right back on the highway.
I cannot remember the title of it right now, and I am searching for it as I write this, but there is a book out there that is a reference of all the yarn shops in every state.
St. Charles was an early 1800s settlement & the original capital of the Missouri territory. Lewis & Clarke started their famous exploration from there. The original main street (cleverly named "Main Street) still has a lot of historic buildings with antique shops, eateries & such. It’s a bit of a local destination. Discover St Charles | Events, Historic Downtown & Shopping . There’s also an event calendar on that site.
They do have a historical reenactment in the adjacent park along the Missouri river. But it’s held annually in May http://www.lewisandclarkheritagedays.com/, so that won’t help you now.
In St. Louis city itself there’s a good yarn shop called Knitorious http://knitorious.com/knitnew/. The area around there is 1920s/1940s suburbia. A bit quaint, but not a tourist destination.
Either yarn store is within a mile of the freeway (70 & 44 respectively), so they’d be easy side stops if you were passing through the metro area on the way to more rural destinations.