Wenn der die Sub sofort verlässt, kann es auch nicht an der Ausführungszeit des getatkbd liegen.
In der Main gibst du ja auch noch bei jedem Loop das Wort Main aufs LCD.
Probier doch mal so:

Code:
Main:
Do
      Led = 1
      Locate 1 , 1
      Lcd "Main"
      Do
         Key = Getatkbd()
      Loop Until Key = 119                                      'w
      Call test
Loop

End

Sub Test()                                                 
      Led = 0
      Locate 1 , 1
      Lcd "test"
      Do
           Key = Getatkbd()
      Loop Until Key = 113
End Sub
Gruß

Rolf