You are correct. When they are moving to pickup the cost is not considered. Easy way to verify is to change the velocity of the vehicle to a really high value. You'll get the 1440 as expected.
I would probably not use Costs directly. Instead, I would create a Process on Run Ending. Search through the population of vehicles and save the values accordingly, like: vehicle.resourcestate.TotalTime(0)*2 -> would give you 2 USD per hour on a given state, in this case state 0 (idle).
vehicle.resourcestate.TotalTime(1)*2 -> would give you 2 USD per hour on a given state, in this case state 1 (busy).
If you need to see these values separated, you would need a matrix to save these values depending on the number of the vehicles. Or, you subclass the vehicle and create a vector where each element of the vector would save each cost.
Else, you just keep adding to a variable for each vehicle on the system.
There is probably another way manipulating the cost inside the process of the vehicles, or using a monitor verifying resourcestates changes on a subclassed vehicle.