Is there no time limit for the how long after a transaction is created that it would be rebroadcast?
Correct. Until the transaction is included in a block the client will sporadically (e.g., once every half hour) rebroadcast it.
What happens if a transaction is based on another one that has not been rebroadcast?
The client would have to have both transactions so it broadcasts them both.