OK, say you have a town to roam in, like Lamentin, or the one on Nogova. Not sure how this works, but I know you can make variables that transcend missions in campaigns. If you could make it send you to separate, or even progressing, missions by going to, for example, the police office, or the mayor's office, or your buddy's house.
Then after that mission is complete, it could progress, or degress back to the town, and you could walk around some more.
1: Town
2: Mission B
a. Mission
3: Town
4: Mission A
Something like that would create the illusion of being freewill, even though it's pretty much linear with some curves thrown in (there's some irony for you).