SURVEYMEANS does take df into account. The df calculation depends on whether you have clusters and/or strata. In the simplest case, with no clusters or strata (which means that each observation is a cluster), df = number of observations - 1. For your example, 2.04 IS the critical t value (with alpha=.05). By the way, CI is SE*t (not SD*t).
You can see the calculated df value by putting df in the procedure statement.