Finally decided on a hybrid workflow for automated walking. The reason I went with completely generated walking in the first place was that just using a walkcycle and repeating it appropriately along the length of the animation didn't allow your Actors to drift to the side as they walked, or to stop then start, or to walk backwards.
A system that generates everything itself, though, will be necessarily restrictive, as it will only function properly for a specifically designed rig, and will most likely lack the niceties of hero-level animation.
So here's the final (I think) workflow:
1. Create in-place walkcycle as an Action.
2. To the script, you provide:
..a. step length
..b. step height
..c. names of left and right foot controller bones
..d. frame ranges, within the action for:
....1. left foot on ground
....2. right foot on ground
....3. left foot proceeding
....4. right foot proceeding
3. Keyframe object-level motion of your Armature
4. Run script
5. Goggle in amazement!
When the script runs, it will ignore the keys you set for the l/r foot controller bones, and create new keys for them, per the previous method demonstrated a couple of weeks ago. As it does this, it will create a list of frames for l/r foot on ground and l/r foot proceeding. Then, it creates another action, in Multiply mode, which contains snippets of the walkcycle action, matching frame ranges between the user's definitions from step 2. above, and it's own generated list.
The end result will be two actions in NLA, one that contains overall translation in space for the whole armature, as well as keyframed foot motion. The second contains properly timed clips of the full walkcycle action. When put together with Multiply NLA mode, the effect will be of automated walking, using a combination of generated foot keyframes, and arm and secondary motion keys from the Action.
It sounds more complicated than it will be in practice, simply because I'm describing the process in detail here to help solidify my thinking.
User makes a walkcycle, points to foot bones, and defines four frame ranges. That's it. I'll probably start coding on this tomorrow.