Different versions of the code for different setups is definitely out. I think that everyone greatly appreciates all the time you put into development/improvements/features, and it shouldn't be wasted on maintenance nightmares.
I don't have anything laying around to repurpose, so hobby servos seem like a no-brainer for me. Ten bucks and an already developed arduino library that can use an available pin (not 100% sure there, but I think that's correct).
As far as what kind of signal is output for a damper, I think that it would just have to be an up front (perhaps rather arbitrary) decision, and then the person putting the system together makes it work for their hardware. Probably just DC or PWM. Are there any analog out pins available? That might make the decision easy. I could suggest a 50 Hz rectangular wave with 1-2 millisecond pulse width, but that might be a bit biased.
I think that determining output signal levels could be the harder problem. I don't know how all of the special cases work and interact (anti-windup, lid open, etc..), so I'm not sure if a generic PID routine could be used. Then, to do it right, there would have to be some way to discover what is attached (blower, vent, or both). If you could do both of those, I think that the only change for the blower + vent case would be that there are 2 PID loops, and the input for the vent controller is the output of the blower.
Now that I think about it, doing this should be a piece of cake
Oh....the vent I'm planning on using is just a simple slider. Probably a flat plate sliding over another flat plate with a circular cutout. A lever arm from the servo moves the plate. I might change opening shapes for more sensitive open area vs. position, I'm not sure yet. Well-flattened plates and a bit of spring force to hold the sliding plate snug. If you orient it right you could probably just use gravity and avoid the spring force requirement. Easy to construct and avoids the "hard stops" that some valves have (potential bad juju for servo motor). Phase II might add a daisywheel on the smoker outlet, but that's a ways down the road....
Hmmmmm......sorry for the long-winded post.