File import via backend function is a scheduled operation. Depending on the scheduler, file size, etc. it can be done immediately or take a while. The usual use case is regular or event driven data exchange - this is the first time I´ve seen a case, where this is executed from a user action in the frontend.
To address the issue of informing the user when the file has been uploaded successfully, I can only think of active polling. Ie. when executing the action, a timer starts in a frontend function and every 1 second or so and checks via backend function, if the record now has the expected file (or any new file). This can be done via the instance function files_get(). Once the backend function gives the thumbs up, the timer in the frontend function can do stuff - from showing a dialog to reloading the form.
The timer can be started for the form, so it is automatically cleared if the user does not want to wait for the result.