In my code I measured the duration of a loop to be approximately 30ms which was what I used for my integration.
With one very simple modification of your code, you can go from 'approximately' to exactly
Move your assignment of time to prev_time from after your serial outputs to immediately after your calculation of delta_time. By making that one change, your delta_time value will be exactly the duration of THAT specific loop. No appoximation of loop time necessary. One less source of integration error.