The short answer is that Pangolin's Beyond will do exactly what you want, and more. It's got great MIDI support (both in and out) and it also has built-in maps for the APC-40 and a few other controllers. (Since you mentioned using Ableton I suspect you have a MIDI surface of some sort.) Personally I love using the APC-40 for live laser shows - it really makes things easy! But if you use a different MIDI controller you can easily map the MIDI events from that surface directly to cues in Beyond.
Another advantage of Beyond is Pango-script. That allows you to trigger all sorts of complex commands (or sequences of commands) with a single MIDI event. Anything that you can't configure directly using the MIDI-mapping editor can be accomplished by adding a snippet of Pango-script to the cue, which means that pretty much anything you can do in the main interface with your mouse can be linked to a cue and triggered via MIDI.
But yes, Beyond is not cheap. In this case you get what you pay for.
That being said, I think you can do most of what you want to accomplish using either Quickshow or LSX, if you're willing to spend the time to tweak things. MIDI-triggered cues are pretty straightforward in either package. As for the single-page of cues limit, see if there is a way to assign a "next page" command to a MIDI input. I don't use Quickshow, so I don't know if this is a Beyond-only feature or not. Likewise I'm not sure if LSX supports it or not, but it seems like a simple enough command. Worst case, you could keep the keyboard close by and use keyboard shortcuts to swap cue pages...
The key is the beat clock, and yes, tap-sync is not the best option. However, I've seen people build custom work spaces in LSX where there are 3 or 4 copies of the same grid of cues, but each page has the cues synced to a different BPM. So you have a 120 BPM page, a 150 BPM page, and a 180 BPM page, for example. Then you map one of the faders (or knobs) on your MIDI surface to the animation speed control and use that to fine-tune the BPM. Then use the re-synchronize button to re-start the cue and line up the timing. I'm sure you could do the same thing in Quickshow. Not ideal, granted, but it is a work-around.
I've always wanted to build an external BPM monitor with it's own microphone and link it to Beyond via MIDI but I've never gotten serious about the project. The hardware to build something like this would be dirt-cheap and I'm sure it wouldn't be too hard to assemble, but for now it's one of those "rainy-day" ideas. Something like this might also be possible with LSX or Quickshow, but again I'm not familiar enough with either package to know if it has an input for a steady BPM clock.
One final piece of advice: As laserists we are our own worst critics. We strive for absolutely perfect timing and we beat ourselves up every time we notice that the timing is even slightly off. What you need to remember is that the audience is not nearly so picky. There's nothing wrong with striving for perfection, but realize that even if you miss your mark the show will still look very good to the un-trained eye. (Within reason, of course!) Also, if you add some clockwise rotation to a beam cue it will often mask slight timing errors.
Adam