I think the info we’d need here to try and diganose are the logs from the device during (or after) a stuck state.
As a bonus would be grabbing the Sync Gateway logs for the same timeframe, but from the sounds of it, the pull replicator is getting into a weird state, and may not even be connecting (a PushAndPull replicator under the hood are two separate/indepedent replicators).