I think you can do it script or entity based.
Here’s how you could do it entity based, though I have not tested it:
-Give the func_invisible_user a “delay” key/value, take 4 seconds.
-Give it a “target” key with value “smoketargets”
-Give the target_smoke a key “targetname” with value “smoke”
-Add a target_delay and a target_relay, give them both a “targetname” key with value “smoretargets”
-Give them both a “target” pointing to “smoke”
-Give the target_delay a “wait” key whose value is 1 smaller than the f_i_u’s “delay” value, here “3”.
Now it might work. The f_i_u triggers both entities. The target_relay immediately starts the smoke. 3 seconds later, the target_delay will turn it off again.
If you want to do it with scripting (which allows you to change the smoke duration from 1 spot), I’ll need to write another explanation.
If you prefer script, just shout.