We have a simple button that launches a flow:
UpdateContext({showLoadingCancellation: true});
'PA>usp_SiteVisitCancellation_AddUpdate'.Run(SiteVisitID, CancelledByID, UserID, Reason.Text);
UpdateContext({showLoadingCancellation: false});
The flow has been created brand new for testing purposes and consists of 2 steps:

When pressing the button once we see the flow is correctly triggered once:

The failure is expected as we do a "THROW" within the SQL Stored procedure on the server.

However, we do notice on the SQL server that the stored procedure is called TWICE. This only happens when the SPROC fails, when it is successful it is only triggered once. It seems to be related to this issue.
After analyzing this further the problem is easily replicated without using PowerApps and simply doing a "Test" run within the flow. The same issue happens and we can see on the server that the SPROC is ran TWICE on failure.
This must be a bug in the action "Execute stored proedure (V2)".