gdmが起動時に"セッションディレクトリが存在しないか、空です!"というエラーを出してセッションを開始できない問題は、セッションディレクトリのパーミッションの問題だった。そもそもセッションディレクトリがどこなのかわからなかったからソースを展開して軽く追いかけたところ、gdm.hに以下の記述を発見。

#define GDM_KEY_SESSDIR "daemon/SessionDesktopDir=/etc/X11/sessions/:" EXPANDED_SYSCONFDIR "/dm/Sessions/:" EXPANDED_DATADIR "/xsessions/"

/etc/X11/dm/Sessions/ がroot以外読めなかったのでこれを755にしてやったらエラーは出なくなった。でもセッションを変更することがまだできていない。.xsession-errorsには~/.wm_styleが上書きできないとかいうエラーが出てる。noclobberを設定してるせいかな?