Yes but sleep and stinking cloud doesn't work on higher level enemies and upon undead.
While true for sleep, Stinking Cloud works fine, there's just a saving throw vs poison. Undead can be managed with Turn Undead.
By your own admission you recognise that you need different means for different enemies. I will post here from the
poolofradiance.fandom wiki the spells.
Sleep:
This spell puts up to 16 targets to sleep for 5 rounds per level of caster. The least powerful targets are affected first, and the bigger the monster, the fewer of them are affected. Monsters above a certain power are not affected at all. No saving throw.
(16hd of monster level affected, while monster with 4d+3 are saved) That means 16 Lv1, 8Lv2, 5Lv3+1Lv1 monster and perhaps 4 Lv4 monster, or in other words: the effect changes with the monster level.
Stinking Cloud:
This affects a 2 square by 2 square area. Anyone in the cloud gets a saving throw. If unsuccessful, he is helpless for 2-5 turns. He can move out of the cloud, but he is still helpless only as long as he is in the cloud and for 1 round afterwards. The cloud lasts 1 round per level of caster.
So yes there are saving throws for Stinking Cloud according to the wiki. My memory was not that bad.
I might add here that in later games (Curse of the Azure Bonds and Secrete of the Silver Blades) there are Drows and Rakshasa that resist magic.
But tell me how did you applied sleep on the horde in Sokal Keep? It is not always about what you use, but also about how and on whom you use it.
I used it on the mob and plinked them with arrows while focusing my melee on the ogres. That was one of the fights I liked, yes.
So you have thinned out the ranks with sleep and arrow throwing mages. Implies that you had at least two mages.
What about the archers in the back rows?
Different means for different enemies with different effect and the need to apply it different dependent on the situation, while preferring one enemy over the other, that is what they call tactics.
Mages were the only class that could resort to different means of combat, while fighters have been in the first versions of D&D rather a dull group. Fighters received different special maneuvers like grapple and disarm in ADD, but this could have not been translated to cRPGS. And due to Colin and his infamous Book of Elves with the Bladesinger fighting style the possibility was born to make a fighter more versatile. With DnD3E the Fighter received the Feets that made each fighter possible a different kind of bread. The 4E is not a PnP RPG, but a BnP RPG and each fighter becomes as versatile as a Mage and why WotC are not pushing it in the time of Board Games is a mystery to me. The DnD5E has created the most versatile Fighter ever in an DnD version aka the most beloved Battlemaster, that builds up also upon Colins work of the Bladesinger fighting style.
This is what is called evolution (changes over time that accumulate and are selected).
Therefore you cannot expect much tactics with the Fighter, Paladin or Ranger in the earlier GoldBox games, besides positioning, choice of weapon and enemy. And therefore the mage is the only possible way to experience the tactical choices and even his is limited especially in PoR due to the amount and the kind of spells. The mage with sleep is the the strong choice in the first part of the game. But as the game progresses and the enemies and the caster gets stronger the sleep spells depricates and Magic misslie, Burning Hands, Shield are a better choice. Stinking Cloud is the only Level 2 attack spell, while Strength is to short in duration.