Would that be a good fit for this problem?
Since you are working on an immutable data structure the only way of accomplishing such an 'update' would be to reference to the old block/tx/message.
You approach should just work fine. That would have been my first approach too.
You just have to keep in mind that you still need verification (only poster of the first message can 'update' this message).
But note that the displaying of those messages (especially the updated messages) is done client-side.
It is definetely possible to see all old messages. The client has to be set up correctly and needs to have the blockchain synced and verified to display all messages/posts correctly.
Lets pretend the following:
Alice does post some text at block X.
Alice does edit this post at block X+10.
If Bob opens his clients and syncs, the moment he reaches block X, he will see the first post by Alice.
This will be the only message bob will see until he has synced up to block X+10.
Short answer: Yes, i think so.