I think I was able to solve a similar problem, though my problem was slightly different. The short answer is: use at least a .userInitiated qualityOfService in Catalyst; when the qualityOfService is .default (or below) requests become discretionary when the app is in the background (i.e., inactive). And I think that's where the problem is.
For a longer answer, see my response on Stack Overflow.
Topic:
App & System Services
SubTopic:
General
Tags: