Use tagged objects to handle differentiating rAF and timeout

Fixes #13