So it is working, but it also triggers a debug assertion:
void Component::setBounds (const int x, const int y, int w, int h)
// if component methods are being called from threads other than the message
// thread, you'll need to use a MessageManagerLock object to make sure it's thread-safe.
if (w < 0) w = 0;
if (h < 0) h = 0;
const bool wasResized = (getWidth() != w || getHeight() != h);
const bool wasMoved = (getX() != x || getY() != y);
// It's a very bad idea to try to resize a window during its paint() method!
jassert (! (flags.isInsidePaintCall && wasResized && isOnDesktop()));
I also found an identical redraw problem in the AAX plugin, where an extra repaint is needed to get the plugin to draw properly after a resize larger (edit: running on Mac OS 10.10, PT 11.2.1 Dev build)