Find multiple categories of promises in texts
That would be a sequence labeling task, the most common type is Named Entity Recognition, you'll find many examples about it but you can train a custom system with your data. The traditional method is Conditional Random Fields, there are a good few libraries available.

Side note: usually a single CRF model is used to do both detecting and labeling at once (your steps 1 and 2).