Split from the constructor because createCoroutineUnintercepted needs the receiver instance — the same two-step the stdlib builder does.
createCoroutineUnintercepted