Firefox braucht einige Zeit länger zum Hochfahren. Da ist X bereits stabil.
Xterm dagegen ist wahrscheinlich zu schnell da, deswegen die Pause. Ich würde übrigens den Wartebefehl enger mit dem xterm-Start verbinden:
( sleep 2 && xterm ) &
Das wartet ab bis sleep 2 erfolgreich abgearbeitet worden ist und startet dann xterm. Durch das Einklammern vor dem & wird diese Befehlssequenz als Ganzes in den Hintergrund geschoben, und das System geht sofort an die übrigen Initialisierungsbefehle.
Eventuell musst du das sogar noch etwas länger warten lassen. Ich verwende standardmäßig eher "sleep 3".