There is a odd way of calculating how long you can use an ally when he is online, and is based on the level difference.
I think if your ally level is a lot higher, they will be available for 15min(?) from the last time he is seen online by the game. If you and your ally level is the same-ish, they will be available for 1hour from the last time his is seen online.