One method that I used in a somewhat similar position that allowed me to force integrity on the data while ensuring a speedy experience for my users was to asynchronously build the request on the server side.
So, if feature A (.75 seconds to process calculations), B (2 seconds), and C (3 seconds) were all part of a single page and when I posted this page the processing time for A + B + C was just too great. 5.75 seconds isn't horrible, but people start noticing speed at this point. My page processing actually took about 10 seconds because of everything that needed to be done. To fix this I split them into separate functions on the same page.
When you added A (let's say aircraft position that does 20 different calculations on things and took .75 seconds), it was asynchronous. I had a server side function that did the processing for this, including checks, file movement, etc. The information for A was stored on the server as part of a partial request (I used REDIS to keep this information).
When you add your B information, the processing again happens asyncronously.
So, when you finally hit "Submit", you don't have to do all that processing again. It's been already done and the results / information / verification are on the server waiting as a partial submission. Your actual submission would kick of a process that basically says "take the partial information on the server and combine it into x (x being a record, request, or whatever you finally do with it)".
I realize I'm being high-level. I can try to provide a code sample if you want. But, my 10 seconds synchronous process of a page (ain't nobody have time for that), turned into multiple submissions for the page. People don't mind waiting 1 second after they update each part of the page. When they actually post the page, all the work has been done in the background, so the response time is about 1 second. They think it's really quick, but it's only because all the work was already done.
One note, the purpose for storing the information on the server side helps prevent security issues. If you only "check" A when they complete it on the page and send back an, "It's all good," message, but then on submission, take the value of A from the submission information assuming it's the same information that you checked, you could open yourself up to malicious data. I receive the partial information, store it server side, and on post, use that information so I know with 100% certainty that the information I'm using is what has already passed all my checks.
Hope that helps!