Take a look at
Dancer as a proxy, Mojolicious: Websocket example under hypnotoad, real-time output from Mojolicious WebSockets?
Do these things raise any questions or answer any questions?
Mojo::IOLoop::Delay looks low-level, maybe useful if you're creating a Mojo::UserAgent .... if all you're wanting is to use a Mojo::UserAgent forget about IOLoop::Delay
You connect event handlers (callbacks) to the eventloop, the callbacks do a little work and let other callbacks do their work ... only rule of callbacks is not to block