TwitchKit iOS Viewing Embed not working within user app

Regarding your continued presentation problems, the presentStreamForChannelNamed method actually makes explicit reference to the UIApplication’s keyWindow property, so verify that it is set before you invoke it. Depending on your setup, you may need to delay invocation. Then you still need to ensure that either the rootViewController or its presented view controller are able to present a modal.
If modal presentation of a player isn’t the behavior you desire then you can definitely just employ a UIWebView. We recommended using the twitch.tv/:channel/embed endpoint rather than the deprecated twitch.tv/:channel/hls. That’s all that presentStreamForChannelName does when TKStreamPresentationModeRemainInApp is specified.
It should be fine to overlay your own playback controls, so long as they’re not used to circumvent ad playback.