It seems SSO enables pre-launch by default. I think this plus running on non persistent clients is my problem. The selfserviceplugin.exe kicks off selfservice.exe -prelaunch. But I think this only works as designed on starting on the 2nd successful login.
I modified the registry to initialrefreshmaxms=1 and initialrefreshminms=1 and the prelaunchenabled = false and pre-launch state=0 to get the behavior I want. In this configuration the selfserviceplugin.exe kicks off selfservice.exe -periodicpoll