Thanks for the details.
Yes, we were contemplating on using PayPal Standard Pro but it would not work for our needs. We need PayPal payments approved and Nop Order created at the time when the order is placed.
We tested PayPal Plus - but working with our Paypal support person, he could not make it work with our account. He said something that they don't support it and directed us to use PayPal Express instead.
We are thinking of using CSS to hide the dropdown on the Confirm page prior to executing the order - that way the customer can not change the shipping method.
For the Order Number, the CustomValue Dictionary is available on ProcessPayment prior to being saved in the orders table - not sure if you can send that as part of the ExecuteOrder to PayPal.
Or, if you prefer, PayPal's API does allow an update method. After the ExecuteOrder, may be send an update using the token id and replace the Invoice ID with the Order Number (or pass it as Custom Data to PayPal).
I hope this helps. Thanks!
FYI, I have a call to tomorrow with our PayPal support person on why I can see the transaction go through the merchant but not the buyer.