What's more general than category theory? First there was arithmetic with numerical calculations (i.e., one unknown on one side of an equation). Then algebra with manipulations of variables (many unknowns anywhere in an equation). Then systems are studied that differ from ordinary arithmetic but share some of the same properties (equations where the unknowns represent all sorts of things - even functional equations) and then these properties are abstracted in abstract algebra and whole classes are studied such as groups and rings. Then category theory studies maps between structures (functorial equations), then n-category theory, then ...

Where do we go now? Is category theory the end of the road for the foreseeable future? 
  Is the only way forward to go backwards and generalize in a different direction (like "generalized equations" of optimization or something)?

 A: Robin Green is right, I think, in saying that "this should ... be tagged with foundations".
Tim Porter hit on an essential part of the equation for new discovery in the sciences, maths included: "ripeness" or "readiness".  As a young child passes through the various necessary developmental stages, so it builds a repertoire of active concepts that both inform and manage its interactions with the external world.  At some stage it begins producing language, not just hearing it.  Once it's done that, the child can proceed to holding conversations, to understanding stories that involve dialogue, to reading, and to writing.  But each stage is necessary to the subsequent ones; not even a "genius" (*) can completely skip all the intervening stages to pass from hearing language directly to writing it.

(*) A digression on what we mean by "genius": In fact, what we consider "genius" is often nothing more than a degree of insight which enables its possessor to move so swiftly through intervening stages that it may appear as though those stages were skipped.  Look, for example, at Évariste Galois, and his amazing insights into group theory: he was clearly (and fortunately for us) "before his time"; yet he could not have produced his results without first passing - rapidly! - through the necessary intervening stages that included the current state of play in group theory; nor without insightfully applying those ideas to new ground.

Similarly, as we study the mathematical aspects of the external world, we can only develop concepts when a suitable foundation is in place. In this sense, abstract algebra is foundational to category theory, differential equations to analysis, and arithmetic to algebra - not the other ("logical") way round.  So when we're looking for foundational ideas in maths, let's remember that a suitable foundation for deducing other ideas is usually only arrived at very late in our process of understanding those other ideas, by a considerable amount of abstraction and much sweat spent on proving that that foundation (or axiom schema, or theory) suffices and is necessary (only logically!) for those deductions.

In short, I'm saying to user1613 that discovering something more "fundamental" to maths than category theory (CT) will probably only happen after we've had plenty more experience with using CT and applying it in places not covered by the ideas that generated it (i.e. outside algebraic topology).  Or, if we're lucky, it may happen sooner than otherwise "normally" to be expected if some genius happens along with amazing (but not impossible) insights that connect CT to hitherto unsuspected areas of study.  Care to combine CT and molecular biology, anyone? ;-)
And of course, the genius that does happen along will be an "outsider", in other words, somebody who's not too close to the problem to begin with.  Which will put many dedicated researchers' individual and collective noses out of joint.  Remember David Hilbert's famous Hilbert Programme?  Everybody believed that here were a century's worth of serious problems needing elucidation.  But it only lasted about 30 years, when along came a Young Kurt (Gödel to be precise), with some devastating news about undecidable problems in proof systems such as Principia Mathematica, Bertrand Russell's crowning achievement of research into mathematical foundations.  Ironic, that last ...
One more point, and I'm done.  And that is that fundamental advances are usually disruptive, not the result of an assembly-line, production-oriented approach to making progress; by definition, such a "steady as she goes" mindset can only ever produce more of the same.  User1613, you're looking for a big idea in the grand, unifying tradition of CT; but CT itself sprang from the difficulties of making sense doing algebraic topology, not from the impetus to produce some sort of Unified Field Theory for maths.  I'm willing to bet that if you, for example, dedicate yourself to finding "the thing more abstract than CT", you'll only make any progress by first making several totally unexpected discoveries about apparently unrelated things.
A: I don't really see a coherent logical progression in the branches of mathematics you're putting forward.  Mathematics isn't just about abstraction and generalizing, making things more and more general.  It's most often about solving particular problems.  Category theory was born out of algebraic topology, in many ways as a notational convenience, to make sense of the tremendous and difficult-to-follow messes algebraic topologists were producing.
If you've ever programmed in a language like "C" you know the concept of a "macro".  This is an idea that is re-usable in many different contexts.  You plug in different objects and the macro continues to make sense.  That's much of the point of category theory, as there are so many ideas that are duplicated over and over again in mathematics that it's confusing to give them special names.  So we call these ideas by generic names that make sense in a wide-array of contexts, like "the co-product (or whatever) in the category C (name your category)", etc.  It saves time and energy.   Moreover, once you've reduced the "bulk" of your notation sufficiently, there is a phenomena where the concepts are lighter and easier to play with.  So by using category theory you sometimes "lighten the load" a little, making other discoveries perhaps a little easier (if you're lucky). 
In that regard what gets called "category theory" I think of as more of an attempt to find the natural language for certain types of ideas.  The general idea being that certain types of problems become easy when using appropriate notation. Not all, but some.  Some problems are just hard -- like the Poincare conjecture, or the Schoenflies problem, the classification of finite-simple groups, or existence and uniqueness of solutions to Navier-Stokes (and if you look at the work that's been done on these problems you will see almost no category theory at all, just a tiny little bit on the high-dimensional Poincare and Schoenflies problems). In programming category theory might be analogous to the study of data types, and how one structures memory efficiently. 
A: A minor thought about directions beyond category theory as we know it would be that in its present form it is hard to model probabilistic, or optimisation theoretic problems, yet there seem to be some instances for instance in modelling networks, where there are both elementary category theoretic ideas and 'optimisational' approaches needed but they, as yet, interact badly. Some of the discussions on the n-Cat café have gone slightly in that direction. The problems are there but the ideas on how to go into that area are probably not yet 'ripe'.
A: Final Answer: Type Theory and the Univalent Foundations
The Book
The paradox of categorys as a foundational theory is that it aims to divorce itself from set theory but doing so by building on intuitions  and formalisms  that are best explained in a set format.  Thus, CT is the best way to think about sets and to structures that generalize from them and very useful for the study of set-like structures.  But the further we go away from the traditional attributes of a set, the more category theory becomes contentious or at least more difficult to work with. Normally, this is "swept under the rug" by instead of focusing on objects and their morphisms we focus on classes and their morphisms, in a sense taking us away from the strictly quantitative nature of set theory into the more qualitative world of classes. 
But in my opinion, this is like drawing a bunch of one's and zero's on paper with charcoal, then smudging it with an eraser to look like a non-descript face, and then saying that you have progressed from the class of  set (you can count the number of smudges) to a class of faces (you can't count the faces the smudge represents) when in fact  the face that you can represent will always be limited by the initial scoring of the one and zero in charcoal and thus still reflect a structurally set-based nature
My opinions on the implicit presence of set theory within categories aside,  the notion that a type of object and then what you can do on that type  is a construct that is familiar to every programmer in the world. So to are the notions of polymorphism  and inheritance childs play to an object oriented programmer yet they are very difficult to deal with in a basic categorical perspective since they require one object to have multiple identities and this leads to construct such as multi-categories, or colored categories, etc. But since type theory is  built from day one as it where on the more abstract notion of a type (which for all intents and purposes can be considered the categorical class), then it is better equipped  to deal with structures that bear absolutely no relation to sets.  
In effect, type theory allows you to draw the face exactly and then deal with that construct as its own mathematical identity, be it's own "thing" instead of having to  build up that identity digitally and be limited by the combinations of smudged ones and zeros.
A: Generalization goes where problems lead it to. 
