you have the flow right up to this point. the timing of the post to the ipn page is an unknown, it wont happen at the same time as the user being directred to the thank you page, it will happen at a later time. when the user is dierected back to the thank you page, the payment is entered into a queue for pay[al to process with the merchant bank, it may take a few seconds for the transaction to process, it may take minutes, or hours even.
Yes, that is correct
you are correct again
no nothing special needs be done to the code on the site for IPN except for setting up the IPN receiving page.