Junior was racing a race after he got stuck a lap down by a crap pit call, trying to get into the "lucky dog" spot to get his free pass. He had a run on him and Vickers went way too low and put him below the yellow line (damn near the grass), Jr. was clearly about to get by him, hell his car was close enough to bump him even after he let off the throttle.
As far as the rain shortening goes, it was the right call. It rained for atleast another hour after the race was called and a track as big as Daytona takes over 3 hours to dry. It wouldn't be fair to fans or the drivers to ask them to restart the race after 10 pm and expect them to run for another hour.