The solution (it works on bash, dash, and it seems posix compatible, but you should test, because the discussion was about the different behaviours of $! in bash and kornshell):
# run command1 in background, and the sleeping killerNote: kill (the shell buildin) prints some error messages, which you should filter
( sleep 60; kill $pid ) &
# other stuffs
# wait command1
Note: Security: the methods is not very clean and secure. If an user can force system to recycle the PID, the scripts could do unintended things.
I this trick can be used to parallel the init script (parallelize within the script, not "run scripts in parallel", as the current trend).
So another short tip: Debian sleep support "floating sleep", so use sleep .1 istead of sleep 1, to speed up the init scripts (module loading, waiting for devices, net,...). Unfortunately most of the debian scripts use integer sleeps.