I already caught Drule in chat but I will post my solution here in case anyone else wants to check it out.
It turns out that this was much more painless than I though... apparently you don't even need to bother with checking the aspect ratio at all!
If the resolution for your game is 320x240 then Construct will pick the lowest resolution available when you go to fullscreen. For most modern monitors that will be 800x600.
All I did was this:
And it just worked. Widescreen monitors will show your game 4:3 centered in the middle with black on either side. This uses Unbounded Scrolling on a 320x240 game. The clamp() expression is necessary to scroll to the proper location because when you zoom layers like that then the scrolling goes all funky (if it's not unbounded then your player goes off the screen, and if it is unbounded then your player is always centered and you can see outside the layout). Anyway, the clamp() thing fixes it.
If you want to fullscreen a letterboxed 16:9 game on a 4:3 monitor though, that's a totally different story