Re: MS back ported long filenames to 3.11, you had to install a patch.
Windows 95 had preemptive multitasking, async I/O and and better process isolation (not at the NT level, though) which 3.x never had. Without real multithreading, even TCP/IP support was not that great.
Win32s was a subset mostly for GUI stuff, and was still limited to the 16MB limit of 3.x (95 wasn't, although many back them had less memory). 95 also introduced DirectX.