Decouple connection_dir_request_failed() from directory_initiate_command_rend()
Instead of calling connection_dir_request_failed() directly, directory_initiate_command_rend() should mark the failed connection and have it cleaned up later. This would prevent recursive invocation of directory_initiate_command_rend(), and remove 12 functions from the Blob.
I'd do this right now, but I want to test that the code actually does the right thing.