I don't understand what you are saying here; it sounds like a
contradiction: the file on disk is updated (with presumably the next
Foo:%d strings), but the "buffer content isn't refreshed"? Maybe by
"buffer content" you mean its display on the screen? Because if the
file is updated, the buffer's content must also be updated, as that's
what gets written to the file. Right?
The display on the screen will only change if Emacs enters redisplay.
If you see the file's contents change, but the display on the screen
doesn't reflect that, it means Emacs does not get a chance to perform
redisplay, because it doesn't become idle in any of the threads that
are active. Which could be the case, since every time a running
thread is about to become idle, there's another thread ready to run.
> Interestingly enough, the minibuffer message does get updated.
Displaying minibuffer messages uses a separate entry to redisplay, and
that entry only displays the echo area, unless it needs to resize the
mini-window.