I have implemented the new session delegate methods and have verified that everything is working properly on the iOS side. activationState is .Activated and outstandingUserInfoTransfers.count is 0.
The behavior on the watch side is inconsistent. Occasionally the watch appears to stop receiving any user info at all, and has to be reset. Resetting it completely resolves the issue, and transferred user info is once again promply received. Everything works as expected.
As for triggering the issue, I've been able to reproduce it by making multiple transfers in a short period of time (e.g., 6 or 8 userInfoTransfer objects all within a second or two). The data does get to the watch, but the watch stops delivering it promptly, and starts to stagger delivery. It then only delivers the first queued object once another object has been received and added to the queue.
I was able to interactively step through this issue where four WCSessionUserInfoTransfer objects were received by watchOS, but didn't get received by the extension. Sending a fifth userInfo transfer would cause the first one in the queue to get delivered to the extension. Sending a sixth one, would cause the second one to then get delivered to the extension, and so on.
One fix is to reset the watch or simulator, to clear up the received queue issue.
I'll work on creating a sample project to submit to Apple. If anyone else files an issue in the meantime, please provide your radar. Thanks!