You're not looking for Catalyst::Request - you're looking for Catalyst::Engine. In the C::R docs, it says that it's filled in by C::E. So, you need C::E subclasses that DWIM, plus some dispatcher that uses the right C::E subclass.
Sounds to me like you just want to use Catalyst and go from there.
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?