Never mind.
$asctime has no idea I gave it $gmt. I didn't give it the GMT timezone, I just gave it the current date ($gmt, which is an hour in the past) but as if it were in the local timezone. Local DST then applied.
My bad... just one of those things.