Basically just setTimeout with more options.