720x240 is a standard trick to use when you can't get your video chipset's pclock low enough to handle 15KHz CGA modes. 320x240 forces your pixel clock (sometimes called "dot clock") down to 5-6MHz, which some drivers won't allow. You can often hack around this with open source video drivers (this is how tools like AdvancedMAME via Linux XWindows drivers used to work if you didn't use SVGALib, and I think it's how GroovyMAME/GroovyArcade works via patches that simply change this arbitrary value, unless I'm completely wrong). If you're stick with a pixel clock of 10-12MHz as a bare minimum, then 720x240 us your only option for 240p.
Your CRT generally won't know the difference (horizontal "resolution" is meaningless to a CRT) and you can use various scale modes in MAME to work around the odd resolution. If you dig way back in the archives on this forum, you'll find some discussion about it. Ditto in the readme for tools like lrmc (Low Resolution Modeline Calculator).
With that said, following a few links on the RPi forums lead me here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=24679Talk of "CVT" modes is very interesting. I *still* haven't wired up my Gert VGA 666 adaptor yet, but it's on a list of things to try. Getting it working with a proper 15KHz modeline is high on my list of wants.
Also, getting progressive scan modes out of the RPi's composite TV Out would be amazing. But I fear that falls under the same "vendor binary driver limitation" nonsense.