Was this ever answered? I am having exactly the same issue. In my case, I provide access to forums based on the user profile (which can change while they are logged in). The access is not updated until the user logs out then logs in again.
I tried that as a workaround and it doesn't seem to be working for me. Is there any way to delete or recreate the role cookie from a page loaded by the user?
the second option worked for me. However, you should include a sample what the "roleProvider" string is (in my case it was "Default")
var value = String.Concat(roleId, ";", roleName, ";", roleProvider);
var principal = Sitefinity.Security.Claims.ClaimsManager.GetCurrentPrincipal();
Telerik.Sitefinity.Security.Claims.ClaimsManager.SetClaim(principal.Identities.Claims, Telerik.Sitefinity.Security.Claims.SitefinityClaimTypes.Role, value);