A Delegate is a method signature - the parameters and return values. If you want to use a method as a Delegate, the signature of the method must match the signature of the Delegate. In this case, your method tries to return a Boolean, but the Timer Delegate does not specify a return value. Removing the Boolean thus makes your method usable as a Timer Delegate.
This doesn’t mean that you can’t do what you want through. If you subclass WebTimer (and I really suggest you do for predictable results), you can implement the Action event and then create your own Action event definition that accepts a Boolean return value. Then you just call that method from the original event and do what you want with the Boolean return value.
Just keep in mind that you’ll get False if the custom event isn’t handled.