I think your first point is doable in certain cases. I suppose in your problem you have some pickups and/or deliveries which are unloaded/loaded at the vehicle end/start location (depot). In the case of single depot, or, in the multi-depot case, if you know which depot each pickup or delivery is associated with, you can convert those pickup or delivery jobs into shipments, with one leg at the depot. In this way you can define service time for the leg at the depot.
Note that the service time is for individual activity. If you want a flat service time for no matter how many loading or unloading activities at the depot, you can try the setup time.
Your second point seems difficult to do with current Jsprit, unfortunately, if not impossible… My initial rough idea would be to work with the getActivityDuration method in VehicleRoutingActivityCosts.
EDIT: hmm maybe your first point can also be achieved by the getActivityDuration method? I’m not sure…
Hopefully this helps.