What happens if you connect the NPE object to the session object and when everything is ok remove the association and then close the page? Seems that either garbage collection is to aggressive or a rollback is taking place. To prevent the rollback change the error handling on the activity calling the external service to custom without rollback.
Hope one of the 2 suggestions will lead to a solution for your case.