Does running an Android service in a remote process mean that it's running on a different Thread?
Since threads are owned by their process, having a service in a separate process means it will be using threads other than those used by any other process.
Is that a difference between a local and remote service?
Typically, a "remote service" is one supplied by a separate application.
Similarly, when calling a remote service via IPC, does it return immediately? Or does it wait for action to be done?
Calls are synchronous -- they have to be, since AIDL methods can return results. When a client calls a service via an AIDL-defined method, the client blocks until the service returns, regardless of what process or thread either side happens to be using.