Goroutines -> tasks
channels -> rendezvous
channels -> rendezvous
Google's implementation makes use of greenlets, while gccgo is using OS threads. Further implementations might decide on others approaches.
As for channels/rendezvous you might be correct, as I only played a bit with Ada.