Actually, you can answer your own questions yourself, but let me try to help.
1.Yes, but usually you will need a second contract class as the data is in the form of headers/rows.
2.Yes and service + service group (follow link's steps)
3.When you said staging, ax's standard staging tables came to mind. Their use is different, but if you're talking about keeping the record in a custom intermediate table without creating driect an order, I highly recommend it. It doesn't matter when everything is fine, but in case of an error, it will be useful to identify the source of the error
4.Yes (Create a response contract class for return value or return a json string)
1.same
2.If its a just data, change contract classes. In 2012 after change We deploy service/service group etc. but I guess 365 dont need them. Just a build ll be enuogh (That's what I think, need a test )