Hi,
You can render main scene to back buffer (so just with default rendering probably), then render what you need to viewport node as you already pointed out and at the end use screen space shader to blend back buffer with texture from viewport.
I used similar way for my 3D light mask. I rendered main scene to back buffer, rendered scene again to viewport texture but with different shader (to create visibility mask) and then masked my back buffer with viewport texture using simple screen space shader.
I don't know what you need to achieve, but be aware that viewport doesn't have all features default rendering have, for instance you can't use textureLod
to get blurred versions.
You can also check out my post about 3D light mask if you haven't seen it yet:
https://godotforums.org/discussion/25683/3d-light-mask-with-godot-3-2-3#latest
Maybe that will help you somehow.