Use the same mechanism as we use for the thin threads.
The change in message reducer is necessary because persisting the information about startReached status to SQLIte causes a bug where after refreshing the app we don't try to fetch messages ever again. An alternative solution would be to filter the status out on the DB layer, but I think this one is a lot cleaner.
https://linear.app/comm/issue/ENG-8706/modify-message-lists-to-call-the-new-function
Depends on D13147