You're mixing two things here.
1) To implement CustomServiceTasks in Designer, which is what adds new kinds of elements to the palette, you don't implement JavaDelegate. You write a regular java class and annotate it as specified in the user guide.
2) Any ServiceTask can be bound to a runtime implementation, which is the code that is executed when a process instance is being executed and the service task is reached. Since a CustomServiceTask is effectively a regular ServiceTask at runtime, this is available for CustomServiceTasks as well. This is what is specified using the @Runtime annotation on the CustomServiceTask's class. One of the options for that runtime implementation is to implement JavaDelegate, but keep in mind this is the runtime implementation and has very little to do with defining a CustomServiceTask itself.
Regarding 1), this is only available for ServiceTasks (hence the name "CustomServiceTasks"), so if you need to add boundary events, you cannot use this. If you need to add customized boundary events, you will need to add them to the core of Designer in the same way any other boundary events have been created already. For examples of that, take a look at the implementations that are already there.
I hope this helps. In short, yes, you can do this, but not using the standard extension mechanism provided by CustomServiceTasks. You will have to expand the functionality of the core Designer to achieve it.