I think I found the problem. If you make up your own cookie name, that seems wonderful! So change:
HttpCookie cookie = new HttpCookie(
FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(ticket));
to
HttpCookie cookie = new HttpCookie(
"SiteCookie",
FormsAuthentication.Encrypt(ticket));
And then remove it according to the question:
string encryptedCookie = Request.Cookies[ "SiteCookie" ].Value;
FormsAuthenticationticket ticket = FormsAuthentication.Decrypt(encryptedCookie);
Assert.IsFalse( ticket.UserData.Length == 0 );
Its possible .NET does some complicated things with it, so putting it in a new one works great.
UPDATE:
, , , -:
FormsAuthentication.RenewTicketIfOld(ticket); // Do before saving cookie