While John Fultz gave a depressing answer concerning GUI controls, I doubted that this cannot be done in Mathematica. A bit of exploration and Rojo's extremely useful answer helped me to come up with a workaround to simulate Method -> Queued for GUI controllers other than Button.
The function queued accepts any dynamic controller as its first argument and any command as its second argument and whenever dynamic manipulation of the controller is done, it fires the command just like Button[..., Method -> "Queued"] would do:
Attributes[queued] = {HoldRest}; queued[gui_, action_] := DynamicModule[{trigger = False}, DynamicWrapper[EventHandler[gui, {"MouseDown" :> (trigger = False), "MouseDragged" :> (trigger = False), "MouseUp" :> (trigger = True)}, PassEventsDown -> True, PassEventsUp -> False], If[trigger, Refresh[action, None]], SynchronousUpdating -> False ]];
Now simulate a long calculation that depends on a slider-value and wrap the whole in queued. Whenever the Slider is released, the updating of the long calculation starts:
long[x_] := Module[{a = .3}, Do[a = x a (1 - a), {i, 10^6}]]; active = False; x = 3.5; queued[Slider[Dynamic[x], {1, 4}, Appearance -> "Labeled"], active = True; long@x; active = False;] Dynamic@If[active, ProgressIndicator[i, {0, 10^6}], "Ready."]

Just for reference, the same cannot be done with the second argument of Dynamic (as discussed here). This won't work:
Slider@Dynamic[x, {(x = #) &, active = True; long@x; active = False;}]
Update
Concerning ContinuousAction -> False, my problem is twofold: first, it does not update the controller variable continuously (which is an unnecessary limitation in my case), second, the following code won't work as expected:
trigger = False; x = 3.5; Slider[Dynamic[x, (x = #; trigger = True; long[x]; trigger = False;) &], {1, 4}, ContinuousAction -> False, Appearance -> "Labeled"] Dynamic@If[trigger, ProgressIndicator[i, {0, 10^6}], "Ready."]
Neither does this:
trigger = False; x = 3.5; DynamicWrapper[Slider[Dynamic[x, (x = #; trigger = True;) &], {1, 4}, ContinuousAction -> False, Appearance -> "Labeled"], If[trigger, Refresh[long[x]; trigger = False;, None]]] Dynamic@If[trigger, ProgressIndicator[i, {0, 10^6}], "Ready."]