I strongly believe that in order to achieve a good fluency in English, you have to practice speaking the language constantly. Furthermore, there's a big number of employers who are from a foreign country and English language will act as a vital medium of communication between an employer and an employee.
In the US, Math and Science should be taught in English. These are technical subjects and if used in America, should be taught in English. For example, in the US we don't use the metric system, so weights and measures should be taught using the imperial system. There is nothing wrong with learning how to convert to metric, since most of the world uses it. Subjects here should be taught in English.
Yes, I believe all subjects should be taught in English, if you are in an English speaking country. Immigrants do need to learn the English language and being immersed in it is the quickest way to do this. I think that catering to them with classes taught in the language of their home lands slows down the process of them learning English.
I personally think that math and science should not be taught in English because those are different subjects and that would make English complicated to understand. I personally think that math and science being taught along with English could make it overwhelming to students. I personally think that math and science being taught in English could cause a lot problems with students.