It doesn't need 2 libs to interface with eachother. That would be bad design.
How is that bad design? Is it bad design to not start from scratch every time someone builds a new brand of car? Of course not, building on other things is essential to progress.
You could have a function in your lib called something like void update() or void tick(). Then you specify in your documentation that that function needs to be called atleast every x (milli)seconds. That way you allow people to easily integrate it in their code whatever it may be. And even makes your lib easily usable outside of the arduino software.
That would make it extremely difficult to use the library.
I haven't looked at the timer lib you speak about really. Does it use a timer interrupt or does it attach itself to the main loop?
Anyway, I don't think the solution to this problem is to have what is essentially an operating system that keeps us from messing with any of the hardware. It would be nice, and simple, to just have a standardized way to have librarys work together.