One last thing you might want to try: Create a script area where you want the monster to stand, and use CreateEntityAtArea("grunty", "grunt.ent", "areaSpawnGrunt", false); and see how that affects his facing. Rotate the script area and see if that affects how it spawns. I'm not sure if this will help at all, or if you've tried it, but hey it's always worth a shot.
To avoid that small bit of lag when using this function, you need to make sure you have another grunt somewhere else in the map so the game loads it into the cache when the map starts.
Other than that I can't be much more help...I can do all kinds of trickery but sometimes (including most cases involving monsters) there's just no easy solution. Good luck to you though