Come on guys. Having a synchronizer is not 2013 technology. Both of the players simply feed their input relative to their own map. As in if player1 moves the cursor, it records where ever the cursor was at each millisecond of the song, and player 2 does the clicks. Then player2 sends the data to player one example "click at 00:15:082" then player1 computer finds out if the cursor was at the note at that time, if it was then it is a hit. And vice versa player1 sends data to player2 where cursor has been during the map, and if the cursor was at the note at 00:15:082 when player 2 clicked its a hit.
Only thing the latency would do is then the players would know that 20-300milliseconds later did they hit the note or not.