Cerrar el popup (window.close) supongo no tiene mayor problema, tu problema es que quieres llamar al servidor para asignar el valor a la session y luego refrescar el formulario pero sin invocar al server para no perder los datos. Es un simple problema de concepto.
Cuando cierres el popup debes antes de actualizar el control del formulario directamente, con un
window.opener y cuando mandes ese formulario al servidor, ahí actualizas la session.
Hay otras alternativas más complicadas que creo no son necesarias, supongo que con eso se soluciona tu problema.
Saludos!