Apologies for the delayed response @MS Techie.
When your stateful workflow fails on execution, the state should be persisted from the point of failure. And you can configure your retry policy with interval
set to PT3H
for it to retry at your 3-hour interval.
If you're not getting this experience or running into issues, please comment down below describing any errors you're receiving.
EDIT 15 Mar 2024
There's a 'peak-lock' pattern that you can look into. Where you read message off the queue and if the processing was successful, "complete" the message to delete it from the queue. If it's a failure, you abandon the message to it goes back to the queue for reprocessing. Reliably processing messages from Service Bus with Logic Apps | Your Azure Coach is a good blog post explaining this pattern.
However, yes, you can build another workflow that involves reading from a "retry queue" and executes on your scheduled three hours. Basically, building your own retry-policy I linked above. Check out Azure Service Bus message sequencing and timestamps - Azure Service Bus | Microsoft Learn for more info.