Questions about inter-module param linking, custom event data propagation & "viewport looping"

Hi
I’m a Niagara-beginner. I got a couple of questions regarding authoring of certain features.

What is the best way to link mass and size? It seems like I can’t Link Inputs on these (because they are initialized in the same module I presume)

I have a ribbon child emitter on mesh parent emitter. The ribbon traces a trail “behind” the mesh. I want the mesh’s size to affect the ribbon width. What is the best way to achieve this? I’ve overridden the “Float 1” param in Generate Location Event with Particles.Scale.x. However I’m not sure how to get this data onto the Ribbon Width. (Ideally without resorting to Execution Mode Every Particle I presume?)

Some particle systems support looping behavior on the particles relative to the view frustrum. So the particles gets teleported once they get out of the viewport and all particles updated/rendered are visible by default. These kind of effects are used to represent “infinite” volumes, things like precipitation, dust etc. The only way I found so far is to attach an emitter to the camera, but it means that the majority of updated particles won’t be visible and it also introduce a bit of difficulty regarding alignment. Does Niagara provide any functionality to facilitate this kind of setup?