Apps not working properly in background
Apps shown as &quot;open&quot; but that are not the foreground app are in the Suspended state (described below), with a couple of exceptions. So the apps you are seeing in the app switcher are generally not actively doing anything.
On a general level, these are the states an app can be in on iOS.

Not running: The app has not been launched or was running but was terminated by the system.
Inactive: The app is running in the foreground but is currently not receiving events. (It may be executing other code though.) An app usually stays in this state only briefly as it transitions to a different state.
Active: The app is running in the foreground and is receiving events. This is the normal mode for foreground apps.
Background: The app is in the background and executing code. Most apps enter this state briefly on their way to being suspended. However, an app that requests extra execution time may remain in this state for a period of time. In addition, an app being launched directly into the background enters this state instead of the inactive state. For information about how to execute code while in the background, see Background Execution.
Suspended: The app is in the background but is not executing code. The system moves apps to this state automatically and does not notify them before doing so. While suspended, an app remains in memory but does not execute any code. When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app.

Background Execution is possible, as noted above, but only for specific use cases:


Apps that play audible content to the user while in the background, such as a music player app
Apps that record audio content while in the background
Apps that keep users informed of their location at all times, such as a navigation app
Apps that support Voice over Internet Protocol (VoIP)
Apps that need to download and process new content regularly
Apps that receive regular updates from external accessories


There is one other case, which is downloading in the background. This is a special case, though, because the app itself is still suspended and the download process is handed off to the system, in case the app has to be terminated by the system to reclaim resources.
Specifically with Google Photos, the app would need to be in the Active state, meaning phone unlocked and in the foreground, to find any photos that need to be uploaded. (After it has a list of them, it may be able to pass the actual uploads to the system for Background Execution, but I don't know if that's how it actually operates.)
For IFTTT, it likely has to be in the foreground to execute recipes that rely on iOS-specific things (i.e. Reminders). It might qualify for background execution under &quot;Apps that keep users informed of their location at all times,&quot; but maybe not (even though it does have location-based triggers).
The Android Wear app should qualify under &quot;Apps that receive regular updates&quot; for background execution. Since it's working some of the time, it seems to be set up to do that. In the case of that app, I would guess it's being terminated by the system to reclaim resources.
A newer device with more resources would definitely not hurt the situation (especially for Android Wear, I bet), but some of this is just down to the way iOS operates in order to conserve system resources (and consequently, battery life).