One common pattern in Gosu is to have several classes like Game, Menu, Title which each have update/draw/button_down/button_up methods. The window then only has one "current state" to which it forwards all of these method calls. It's a really simple, effective way to put structure in a game.
That system does not have much to do with fading by itself, but gives you more good places to put the fading code. In any case, you can just stop calling "update" on the game objects and in "draw" just draw everything, then draw a big, transparent black quad over it.
See this raw-Gosu example by benko which coincidentally implements fading too:
http://www.libgosu.org/cgi-bin/mwf/topic_show.pl?pid=493