Nevím, že by vfork měl race condition. vfork má jediné omezení: nesmíte v něm měnit nic jiného než stack.
V Linuxu se dá overcommit vypnout, pak to funguje úplně stejně jako v Solarisu, AIX nebo Windows. Dostanete ale ty samé problémy :-)
Jak lépe to chcete řešit bez toho, že strávíte týden nastavováním paměťových politik (což se samozřejmě u velkých serverů dělá či alespoň dělat mělo)? Jako ve Windows, kde se systém raději uswapuje, než aby udělal cokoliv, aby se dostal do alespoň částečně použitelného stavu?
V Linuxu můžete mít tolik poolů, kolik chcete, jmenuje se to memory cgroups, odhlašování se potom řeší přes D-Bus, takže pro to váš současný pool nepotřebuje vůbec žádnou paměť. Tu situaci, kdy nejde restartovat počítač, protože došla paměť, znám jen z Windows.