Does iOS have the capability to execute multiple apps in memory, and enable you to switch between them, restoring the previous state?
No - the multithreading of processes is reserved for Apple OS only and apps (including almost all Apple apps) do not get to execute simultaneously when they are not in the foreground drawing to the iOS screen. Only if the app calls some limited API (safari or other webkit apps downloading in the background is one of the white listed background tasks - FWIW) can the app get work done on it's behalf by the OS/kernel when the app itself is in a suspended state.

The iOS kernel is the same foundation as the OS X kernel, so your question about app suspend / resume state is more about the application frameworks in use than the underlying structure of the kernel.

That being said, the iOS idiom is to have apps paused by the OS at any time and various states are cached and saved so that once the kernel resumes execution of an app - whether it was paused for a few dozen milliseconds or a few hours is seamless to the user when the app is programmed correctly.

Of course, not all apps adhere to this idiom, but most do.