I think of 4th option pretty valid as well. Specially now when writing a backend has become very simple. Things like @RethinkDB where creating a push based backend is really simple. And if you really like to get in there you can use something like Django-Rest-API which can have all the stuff you want.
Sorry of derailing this conversation. If I do have to use a mobile backend I would go with Firebase, why ? Really awesome user friendly API. I do most of my client side using Polymer and i really love firebase-collection component from Polymer catalog. It allows you to use the whole service from really simple abstractions. I hope someday other vendors will also build polymer components.