I have already commented in IRC, but will put it here:

Maybe restricting the cases is the way to go, so that it can return a TlTrack or True and False to do the following logic:
  - TlTrack would mean return my track as {next,eot,previous}_track
  - False would mean do nothing and return none
  - True would mean do default processing