This was something we did our last year that I was on the team. We remedied the “robot code fail” situation by having our compiler run twice, one with a flag that would disable this feature, than having a .bat that would swap from the normal code to the emergency code on the desktop in cTase the hotswapper failed for some reason.
The “success” scenario was done through a two way TCP pipe- the dashboard written in C++ had two pages- one took input and wrote data to a socket. That data would than be processed by the RIO and sent back to the dashboard. The second page of the dashboard was completely excluded from the first page and showed only the data received by the RIO to guarantee that was the data being shown by the RIO and a big ready button (well the start button on the xbox controller)
It was some cool stuff but obviously you need an incredibly skilled programmer to pull it off successfully.