Q1: Bonding is definitely recommended, otherwise you'll most probably need some dynamic routing to provide redundancy.
Be aware that you have to major types of bonds:
- active-active: you'll need multi-chassis ether-channel support on the switches (VPC, VSS, MLAG, etc)
- active-backup: functions very similarly to cluster interfaces, less configuration is needed on the switches. Very important to define the primary interface of the bond, so all the SGMs are on the same page
Q2: Basically you create the bonds, and from there on you'll use the bond as a normal interface (e.g. assign IP, add VLAN, etc)
Q3: Unsure about GRE, but I'd try the same way as with a normal interface, but with the bondx.y
Q4: Yes, the bonding happens on the SGMs, so you should configure it for the SG. I believe the magg must be magg99. If you have the necessary connectivity, I'd dedicate physical mgmt ports to given SG (ethx-Mgmt1 to SG1, ethx-Mgmt2 to SG2, etc), just for the sake of future-proofness and flexibility. (Of course it won't work if you have more than 4 SGs on MHO140, in that case you'll need to share the physical interfaces between the SGs)