I do think the smoke diffusion has changed a LOT since you added the smoker, so you might want to take another look at what it looks like if you just have it generating smoke adjacent to it.
Wind should be reasonably simple to add, it would just add an offset to the various code that calculates smoke and scent diffusion. The tricky-ish part IMO is having smoke pile up against walls, which I expect to look a bit odd with a naieve implementation, and I’m not sure how to fix that.
Regarding wind speed, a really simple way to do it is to have a wind strength ranging from 0-1, and “roll” the actual drift once per turn, that might be perfect actually… So a really strong wind would consistently shift smoke/scent in its direction every turn, while no wind would have no shift, and moderate wind would range from occasionally to consistently shifting smoke/scent on a given turn. I think that could work quite well.
Actually even better to keep everything synchronised would be to invert wind speed and get a “turns/shift” value, and check if current_turn % wind_turns_shift == 0, so 100 turns/shift would see only very occasional shifts, and 10 turns/shift would be fairly frequent, ramping all the way up to a strong wind being 1 turn/shift, which would end up I think with pretty narrow cones of smoke/scent in the direction of the wind.
The other thing to keep in mind is indoor smoke/scent isn’t going to be affected by wind, unless you do some relatively complicated stuff to determine if wind has a path through the indoor area.