CoderCharts puzzle optimization
Simple optimizations:

By reading the whole file into text, then splitting the text into a word list, you will need enough memory to hold two copies of the file, which might be huge. Look into line-by-line input methods.

Many strings, after a quick check, don't need to be seen ever again.

The off-by-one-letter test does not ALWAYS need to process every letter in the words.

You never actually have to find the target word in the word list to know you have a solution (you know it's in there from the problem description). Some simpler solutions don't even need to consult the word list.

Deeper optimizations:

If you had a way to test which "next" words were more likely to lead to a solution, you might be able to defer other alternatives to explore those first, for a faster average solution time.

It MIGHT make more sense to solve the problem working backwards or both ways at once.

It MIGHT be worthwhile to keep stats on different words you find and/or to place words that seem like they might be useful later in some kind of separate structure.