The behaviour described by you is controlled by two functions on the payment method model, that get called by Mage_Checkout_OnepageController::savePaymentAction
/Mage_Checkout_Model_Type_Onepage::saveOrder
.
Mage_Checkout_OnepageController::savePaymentAction
will call the payment method instances getCheckoutRedirectUrl
and redirect to the given url after saving the payment informations from the checkout (e.g. Mage_Paypal_Model_Express::getCheckoutRedirectUrl
).
Mage_Checkout_Model_Type_Onepage::saveOrder
is executed on order placement and after saving the order it will redirect to the url given by the payment method instances getOrderPlaceRedirectUrl
(e.g. Mage_Paypal_Model_Standard::getOrderPlaceRedirectUrl
).
So your solution would be to override the Paypal Express payment model, ensure that getCheckoutRedirectUrl returns nothing and return the url in getOrderPlaceRedirectUrl.
A word of warning though: I'm not that sure how exactly Paypal handles the whole authorisation and capturing of the order, so you might run into problems:
Mage_Checkout_Model_Type_Onepage::saveOrder
will place the order and authorize/capture the orders payment depending on the payment methods configuration. I would assume, that the initial redirect to Paypal authorizes the order on Paypal side and will capture it on order placement. So the payment might fail, because the authorization is missing.