The most efficient way to do this is to order all the speeding exceptions by device then date time. You can query GetRoadMaxSpeeds from the start of the first exception to the end date to the last exception for a device. This will return to you all the changes in posted road speed and the dates of these changes. It helps me to think of this data as a graph of all the speed changes over time. Using the results you can interpolate the posted road speed for all the exceptions for the device queried for at whichever time makes sense for your process (start of exception, max difference in speed, etc).
Hope that helps,