My problem with implementing this inside the logout method is that if a keystone endpoint goes away or becomes completely unresponsive ths call could hang for a very long time, or even worse trigger a socket error or some other deep underlying exception that will cause the logout to fail, and that's simply unacceptable.

If this is going to be implemented this way, the calls need to be split off into their own threads and treated as non-blocking, and it should happen *after* the django_logout call is made (you can do `res = django_logout(request)` before your code and then `return res` at the end). That way 1) no matter what the logout will have occurred, and 2) if the keystone calls fail they won't block the process and affect the user.