Hum, well I'm not sure what is going on. Whe you use "at" to run the job, it should not be associated with your terminal at all. I do it all the time. How are you connecting, telnet I assume?
My experience:
o14777@unixweb:/utc/home/o14777>print "sleep 60"|at now
Job o14777.1020282699.a will be run at Wed May 1 15:51:39 EDT 2002.
o14777@unixweb:/utc/home/o14777>ps -ef|grep leep
o14777 8922 7732 0 15:51:39 - 0:00 sleep 60
o14777@unixweb:/utc/home/o14777>
Connection closed.
o14777@xp0:/utc/home/o14777>rsh unixweb
o14777's Password:
o14777@unixweb:/utc/home/o14777>ps -ef|grep leep
o14777 8934 7752 0 15:52:59 - 0:00 sleep 60
OK, I know... the PID is different because I took too long to ^D and rsh back, however I did test it and the sleep remained. My cut-n-paste was not fast enough, though. =)
How are you exiting your shell?