Hello,
unfortunately, there is no real support for incremental progress tracking in Repository tier actions - actions are supposed to be (relatively) quick in execution. Also, the transaction tracking of Lucene previously had some inherent issues with long running transactions and would not index them - I don't know how SOLR handles this. But for 10 - 15 minutes you should be fine - as far as I remember, the issue was with transactions that went on for more than an hour.
In order to update a node property immediately, you'd have to use a retrying transaction helper to execute the "setting of progress property" in a nested (requiresNew = true) transaction. But if that property is located on a node you will be updating as part of the action, you'll run into concurrency issues when the action completes. E.g. Alfresco will report a conflict between the changes made in the nested transaction and your overall action transaction. This very likely will mean the action transaction rolls back and is tried again from the start.
If you must set some progress data, I would advise to use the AttributeService instead of a node property to manage the progress data. That way you won't run into update conflicts when using nested transactions. You also reduce pressure on indexing since you don't frequently change a property.
Another option would be to try to split the action apart into logical fragments (multiple actions) and trigger the next fragment as an asynchronous action when the current one completes and commits (including the progress property). Of course this depends on the nature of your action and you might have already considered this - it's just what my initial instinct would be when encountering a long running action…
Regards
Axel