Your question reminded me of a solution to a similar problem in WPF. Let me do my best to explain the problem and his solution.
The problem was to provide a method for the business logic to interact with the user through "Interaction Requests" that are then handled in the appropriate region of the user interface. The business logic would be unaware of the UI involved in the interaction, but would initiate the request event which was then handled be the UI. I couldn't find the example again and it was WPF centric anyway, but he basically he handled it by creating a control that mimic'd the look of a Modal Dialog. He then created an Action which handled the Interaction event and automatically inserted the Faux Dialog into the TabPage on top of the other controls in the TabPage. One trick was the Action assumed the Faux Dialog would be inserted into a Grid Control that was to be its parent.
So basically here's what I'm saying... as a possible solution
- Create a UserControl that looks just like a Modal Dialog. Except it is contained in a transparent region to fill its container.
- Have it be inserted into the TabPage's collection of Controls on top of all its other controls. Dock it to fill the TabPage.
Actually, here's some pictures..

And then when you add the user control.. You have a fake dialog which actually has a transparent area around it that fills the tab page..

The idea here is that you will not be able to interact with the controls below it, because it is on top, but it will still be inside the tab page, so that it doesn't affect interacting with the other tabs. The blue portion of the 2nd image should actually be transparent to give you the illusion that it doesn't exist, but prevent interacting with controls below it.
This has some limitations though because you cannot make your dialog larger than the tab page.
I guess maybe I'm suggesting you think "inside the box" ?