You can't just have a function that "delays without blocking" (blocking = using delay()).
Ah I think I see what you are trying to do, thanks to WizenedEE.
No, you can't take the Elapsed library, put it into a function, and call that when you want a delay. You may as well just use delay() if you are going to do that.
All the Elapsed library lets you do is tell how much time elapsed from a "trigger point". So for example, if you start (reset) the timer when the button is pressed, you can check the timer every time around the loop and see how long ago that happened. But you have to do that yourself, it doesn't magically do it for you.