Well, I checked the v04.04.01 version code against the last version code I had running v04.00.02. Sure enough, that code has been significantly changed, but there is not much in the summary section about it. Also, in going over the v04.04.01 code in the signin.ascx.vb, you'll find that there is some code to do this type of thing. Trouble is - as you discovered - it doesn't work. It got me to thinking about how this was done.
Originally, setting focus on a form was only possible in ASP.Net v1.x by kludging some codebehind to write a javascript command to do it. You can find the code that is being called in the present version by inspecting the function call in the signin.ascx.vb code: setformfocus(txtUserName), which references code in the Globals.vb. Take a look at it, and you'll see what I'm talking about.
Now, back to the signin.ascx.vb code, the snippet that actually calls this function has an issue, most probably due to the function not working as expected. You can change the code to include your 'fix' in the snippet and rebuild the solution to get around it. Here's the snippet with the revision:
If Not Request.QueryString("username") Is Nothing Then
txtUsername.Text = Request.QueryString("username")
'SetFormFocus(txtPassword)
txtPassword.Focus()
Else
' SetFormFocus(txtUsername)
txtUsername.Focus()
End If
Looks like things have improved since I last worked with ASP.Net. Imagine being able to set focus in a straightforward manner. Wow, huh? BTW - I've not looked into why the Globals code is not working, but someone on Core needs a look. Hopefully, I'll be able to log a Gemini point on it later.
Cheers!