Here is a cheap answer: if you can embed the semi-group in a group, then Ruzsa's theorems apply.
If $S$ is a commutative semi-group with cancellation, then you can embed it in its Grothendieck group $G(S)$. For non-commutative semi-groups, cancellation is sufficient for "right reversible" semi-groups, but not in general: http://math.stackexchange.com/questions/79453/when-a-semigroup-can-be-embedded-into-a-grouphttps://math.stackexchange.com/questions/79453/when-a-semigroup-can-be-embedded-into-a-group
Perhaps it is possible prove a stand in for Ruzsa' triangle theorem (which seems to be the missing ingredient) by emulating an embedding locally for $A$ (e.g. perhaps weaker conditions suffice to find Freiman homomorphisms).