The user should control that, not a developer of third party applications, if the user wants your application to keep chewing through resources while in the background he can raise its priority.
Likewise I'd consider this desirable behaviour. If I bring another window to the foreground then I'd prefer that other window to get the lion's share of resorces. The program that I send to the background is certainly not so awesome that I'd be happy for it to continue chewing through all of my system resources despite the fact that I'm not currently using it.
i agree with that, still i believe that the developer should be able to control that.
(in my situation i have a very good reason for the background window to receive it's full performance)
The drop to 30fps however is most likely caused by the graphics driver, especially if its not set to maximize performance (nvidia drivers should have default power management mode set to adaptive (atleast on mobile GPUs) and it would make sense for it to slow down rendering of things not in focus with that setting.
You should decouple rendering from logic if a lower framerate causes your application to function incorrectly.