The 16-bit code was a dead end. It was not re-enterable, so 32-bit code had to take a Win16Mutex on every kernel code.
If you ever debugged DirectX code on Win9x, you'd remember that quite vividly. The LockSurface call that provided direct access to pixels locked this mutex, so a breakpoint in a locked section caused an instant hard deadlock.
That being said, it indeed was a brilliant hack that allowed a featereful GUI to run within 2Mb of RAM with good DOS compatibility.