Alright, well there hasn't been any help from developers on fixing this issue, but I've found a temporary remedy. The app no longer freezes on Android so I don't have to force stop the app or restart anymore, but it will still lose connection after a certain amount of time and have to Exit the app and restart to get it to sync again.
What I did was Force Stop the app (Phone Settings -> Apps -> Sync), then Clear Cache and Clear Data (Phone Settings -> Apps -> Sync -> Storage). This clears all your settings so it's like starting from a fresh install of the app.
Before you link the device, use your file explorer on android to rename your shared folders (e.g. "Folder" to "Folder.BAK").
Then link the device and connect the folders, but keep Selective Sync turned on. Wait for the folders to stop Indexing. Then Exit Sync (either from the notification bar or in the app press "Exit"), and using your file explorer, cut & paste your files from the old Folder.BAK to the new shared Folder (if you have a lot of files, you need to cut & paste a few files at a time or Sync will crash when trying to index).
Then start Sync again and wait for it to finish Indexing with the files added. When it's finished Indexing, you can turn off Selective Sync.
One last thing (this is for Android 9), go to Phone Settings -> Apps, click the three dots in the upper right and choose Special Access -> Optimize Battery Usage, then select All Apps. Scroll to Sync and switch it off.
The app doesn't crash anymore, but I still have to Exit and Startup again to get it to connect to my other devices after some time.
If Resilio doesn't fix this, Syncthing as recommended earlier is a good alternative, though it's really confusing to use at first and there's no Selective Sync. You can use the ignore file, but that's not very practical nor convenient for most people's selective sync needs.