I'll try to answer point-by-point
- Is it a good thing to do? One advantage to the HTTP Callout is that you have a greater range of options for the payload... you could send a collection, or related records. Outbound Messages don't have that option.
- One of the best features of the Outbound Message (in my opinion) is the automatic queueing feature. Salesforce will re-try sending Outbound Messages for 24 hours if it doesn't get a response.
- Callout limits could come into consideration depending on how often the process is invoked, but I would be more concerned about the dreaded "pending operations" exception.
- I don't think I have anything to offer regarding Outbound Message headers...
I'll offer a suggestions, maybe best of both worlds.
- Create a checkbox field on your sObject called "SendOBMessage"
- Create a workflow rule that fires when the field is true
- Create 2 workflow actions, one that sets the checkbox back to false, and the other sends the outbound message.
- Have your process set the "SendOBMessage" field to true. You will get an Outbound Message!