Thanks for the help everyone! It seems like I was just going about this the wrong way, and your ideas helped me figured out the best solution.
As it turns out, you can add states at runtime using POE like this:
$_[KERNEL]->state( 'poe_method_name', $object, 'object_method_name' );
I think this is what had me somewhat confused. After adding the new state, you can set a delay like this..
$_[KERNEL]->delay( poe_method_name => 10 );
.. which would wait 10 seconds before calling $object->object_method_name().
For me, this was the most elegant solution, which I'm leaving here to help any fellow perlmonks who stumble upon this thread.