It's an unfortunate (and fairly inexplicable) limit of Logic's MidiFx implementation. But when I don't feel like using Midi FX Freeze, I use Plogue's Bidule (which I have found invaluable in many ways in terms of midi routing, among other uses).
Specifically, as Dewdman42 suggests, I open Bidule as a standalone, load up the MidiFX I want to use in Bidule, go into Logic's environment to route the IAC output from Bidule into Logic (and disconnect the keyboard midi routing from Logic), and then, when I record, I get the "processed" MidiFX notes from Bidule recorded in Logic's piano roll. I've never noticed a particular timing lag (although I'm sure a minuscule one exists), but as for me this is all studio-bound (and not live), I can quantize as needed.
The disadvantage, of course, is that the Bidule project (with the MidiFX plugin) is not part of the Logic project, so if I want to come back and make changes on another occasion, I have to have saved and reload the Bidule project separately (or set it up again) and redo the Logic routing in my next session. But it's a pretty quick process and, I suppose, one of the (few, for me) downsides of working in Logic.