One big reason that MS didn't get the pre-cell phone PDA market is that WinCE was portable and was available for several processor architectures, just like WinNT! So if you (as an end user) wanted to buy third-party software for your WinCE device, you had to know whether yours was Intel, MIPS, ARM, or PowerPC, or something like that; and your third-party software vendor had to support that processor architecture. Sure, they all used something like the Windows API, but the toolchains build separate executables and libraries for each processor.
Mind, Palm having a 68000 simulator running on ARM didn't save them either. That they used it to keep the PalmOS application runtime environment pretty much the same (including the expectation that you'd build a 68000 PalmOS application) didn't make it smell any sweeter in 2007.