A maneira como consegui esse trabalho foi colocar um &
após o comando sleep / xmodmap (isto é, executá-lo em segundo plano) e colocar o comando completo antes do gnome-session (e o comando sleep foi necessário):
sleep 20 && xmodmap ~/.xmodmap &
exec gnome-session
Acredito que exec gnome-session
ou qualquer outra coisa está redefinindo meu layout de teclado.