as you've discovered, you can look in any module's src/Event/*Events.php file to find a list of their events. Using the order paid event is one way to react once you know that payment has been collected, but note that in scenarios where an order is placed with only a payment authorization (and not a capture), that event would not have been fired yet.
Use the commerce_shipping module ;)
Just create one "free" shipping method .. or one or more regarding your needs.
Also make sure to use the shipping checkout flow for your order type!
It's fully integrated with commerce_paypal and you even can configure
how paypal shall treat the two addresses in regards of collection and
updating data entered @...
Yes - just create a new (custom, standard) payment method named Invoice, and user's then can select that.
On the payment method edit form you can add more details, and even could limit the availability of the method.
Rules are not actively supported as in D7: https://www.drupal.org/node/1535554
But I do not see a need using rules with your use-case.
You need ...
AFAIK you can't rewrite the output of rendered entities (add to cart form) with replacement patterns for in D8 views.
I ran into this same problem and discussed it with the maintainer of the commerce_variation_cart_form module. You can read about it here: https://www.drupal.org/project/commerce_variation_cart_form/issues/3081903
Specifically this from ...