As mentioned in other posts in this group, my senior project team at RIT spent a significant amount of time testing Wi-Fi Direct, determining some of its issues, and creating a helper library. A while ago we created a sequence diagram of the connection process between two phones using our Wi-Fi Buddy library, and I think it would be good to share. There may be a few details that are off or missing, but it shows most of the events that occur when connecting phones. This also shows the complexity of the Wi-Fi Direct framework, and what goes on behind the scenes when using Wi-Fi Buddy. Phone 2 registers a local service, and Phone 1 discovers that service, connects, and sends a message. The user calls Wi-Fi Buddy functions, which call Android WifiP2p functions. The Firmware/Hardware box represents a black box of how the Android WifiP2p functions deal with the device. The diagram includes a lot of information and isn't perfect, but may give a better understanding of what happens when two phones connect and transfer data with Wi-Fi Direct.
Wi-Fi Buddy: https://github.com/Crash-Test-Buddies/WiFi-Buddy