Index: src/js/_enqueues/admin/privacy-tools.js
===================================================================
--- src/js/_enqueues/admin/privacy-tools.js	(revision 47388)
+++ src/js/_enqueues/admin/privacy-tools.js	(working copy)
@@ -60,6 +60,7 @@
 			$action        = $this.parents( '.export-personal-data' ),
 			$requestRow    = $this.parents( 'tr' ),
 			$progress      = $requestRow.find( '.export-progress' ),
+			$rowActions    = $this.parents( '.row-actions' ),
 			requestID      = $action.data( 'request-id' ),
 			nonce          = $action.data( 'nonce' ),
 			exportersCount = $action.data( 'exporters-count' ),
@@ -68,6 +69,8 @@
 		event.preventDefault();
 		event.stopPropagation();
 
+		$rowActions.addClass( 'processing' );
+
 		$action.blur();
 		clearResultsAfterRow( $requestRow );
 		setExportProgress( 0 );
@@ -78,7 +81,6 @@
 			setActionState( $action, 'export-personal-data-success' );
 
 			appendResultsAfterRow( $requestRow, 'notice-success', summaryMessage, [] );
-			$this.hide();
 
 			if ( 'undefined' !== typeof zipUrl ) {
 				window.location = zipUrl;
@@ -85,6 +87,8 @@
 			} else if ( ! sendAsEmail ) {
 				onExportFailure( strings.noExportFile );
 			}
+
+			setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
 		}
 
 		function onExportFailure( errorMessage ) {
@@ -92,6 +96,8 @@
 			if ( errorMessage ) {
 				appendResultsAfterRow( $requestRow, 'notice-error', strings.exportError, [ errorMessage ] );
 			}
+
+			setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
 		}
 
 		function setExportProgress( exporterIndex ) {
@@ -151,6 +157,7 @@
 			$action       = $this.parents( '.remove-personal-data' ),
 			$requestRow   = $this.parents( 'tr' ),
 			$progress     = $requestRow.find( '.erasure-progress' ),
+			$rowActions    = $this.parents( '.row-actions' ),
 			requestID     = $action.data( 'request-id' ),
 			nonce         = $action.data( 'nonce' ),
 			erasersCount  = $action.data( 'erasers-count' ),
@@ -158,8 +165,11 @@
 			hasRetained   = false,
 			messages      = [];
 
+		event.preventDefault();
 		event.stopPropagation();
 
+		$rowActions.addClass( 'processing' );
+
 		$action.blur();
 		clearResultsAfterRow( $requestRow );
 		setErasureProgress( 0 );
@@ -186,12 +196,15 @@
 				}
 			}
 			appendResultsAfterRow( $requestRow, classes, summaryMessage, messages );
-			$this.hide();
+
+			setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
 		}
 
 		function onErasureFailure() {
 			setActionState( $action, 'remove-personal-data-failed' );
 			appendResultsAfterRow( $requestRow, 'notice-error', strings.removalError, [] );
+
+			setTimeout( function(){ $rowActions.removeClass( 'processing' ); }, 500 );
 		}
 
 		function setErasureProgress( eraserIndex ) {
Index: src/wp-admin/css/forms.css
===================================================================
--- src/wp-admin/css/forms.css	(revision 47388)
+++ src/wp-admin/css/forms.css	(working copy)
@@ -1206,6 +1206,10 @@
 	color: #72777c;
 }
 
+.privacy_requests .row-actions.processing {
+	position: static;
+}
+
 .privacy_requests tbody .has-request-results th {
 	box-shadow: none;
 }
