How can I solve 2. then? If collection B updates on any client may only be interpreted after collection A updates happened first, is there a way to achieve this?
You can subscribe to the collection B, once data changed, use method to load data from collection A. There could be other solutions.
You can use method to fetch data and insert data to local collection manually.
Pretty sure that (1) is true. Execution order is preserved for client initiated Meteor methods in general unless you call this.unblock(), and client initiated collection updates are just meteor methods. No callbacks needed.
I think that (2) is also true, but I wouldn’t recommend relying on that.