For 1.) You can do almost all window movements using the "Custom move / resize" action in BTT. However swapping window positions would probably need some scripting. How are you swapping them?
For 2.) have you tried the "Save / Restore Specific Window Layout" action in BTT? Maybe in combination with the "Specific App Did Launch" trigger?
For 3.) have you tried the "Launch Application" action in BTT?