I think you could just check Serial.available - with the appropriate number of characters - in each of your reading subroutines instead of delaying until the data arrives. (If every command string is the same length you could check this in loop).
Or try the state machine approach which is more elegant.
Also note that if your host is transmitting only "1" or "0", you could compress code like:
int haltewunsch = Serial.read() - '0';
if (haltewunsch == 1)
{
digitalWrite(22,HIGH);
}
else
{
digitalWrite(22,LOW);
}
to:
digitalWrite(22, Serial.read() - '0');