According to the referenced blog post, your custom login page should inherit from FormsSignInPage. I took a look at the class in Reflector and did not see anything that would cause a 403 error. However, in looking at its parent, IdentityModelSignInPageBase, I found the following in the OnLoad method:
protected override void OnLoad(EventArgs e)
{
this.Context.Request.ServerVariables["FederationLoginPageRequest"] = "1";
if (this.CheckForFormsAccess
&& (AuthenticationMode.Forms != SPSecurity.AuthenticationMode))
{
SPUtilityInternal.Send403(this.Context);
}
if (!this.AllowCaching)
{
base.Response.Cache.SetNoStore();
}
base.ShowStandardControls = false;
base.OnLoad(e);
}
CheckForFormsAccess is always true, so make sure your Authentication Mode is set to forms.