For #1, I might do the following.
1. Subscribe to the PropertyChanged event of of the FeatureLayer.
2. Whenever edits are made to the feature layer,in this event you can check the value of the property 'HasEdits'.It becomes true in case of edits.
For #2,there are couple of approaches.You can use the property 'Intersects' on the Envelope class.
Hope this helps.