On the GPSs I have tried this on I have two display fields, one is called 'Compass Heading' and the other is called 'GPS Heading', if the GPS has an electronic compass you will see that when the GPS is rotated while stationary that the compass heading will show the direction that the GPS is pointing in real time whereas the GPS heading will not change, this is the same whether the GPS is indoor or outdoor, if you then walk with the GPS you will see that the GPS heading will display the same as the compass heading, this is also the same whether the GPS is indoor or outdoor
The fact that Garmin and other makers use the name 'GPS Heading' is the clue, the heading is calculated between two or more Latitude/Longitude locations taken by the GPS, it there is no movement these locations will be the same and the heading will either be blank or inaccurate, displaying the last heading taken while moving
Your own tests have shown that outdoor when stationary you get inaccurate (or no heading) and indoors you get no heading (or inaccurate), obviously it is more difficult to walk any distance indoors and also you may be walking further away from the GPS repeater which will could reduce the received signal, I think you are likely to have the same problem if you try to test the GPS speed when indoors