Reconcile will keep waiting if the source is inactive, even if it removed the duplicates from the queue. It will only exit gracefully if there is another transaction on source whose log sequence # or SCN (as applicable) is higher than the one to which the target was recovered.Reconcile only exits when the next messages comes in.
The only way a reconcile will know that there are no more messages forthcoming for the sequence # or SCN # is, when the next message with the higher value for these comes in the Post queue. For an inactive source, this may mean a long wait.
To force reconcile to finish early, issue a flush from the source sp_ctrl as below:
sp_ctrl>flush o.SID (Where SID denotes source SID of the Oracle database).
This places a marker (a kind of token message) in the Shareplex queues. Once the Post process sees it, it causes reconcile to exit. The flush is a kind of dummy transaction done on the source where no table is involved. The only drawback is, once the reconcile exits, Post will again stop due to flush and one may need to manually restart it.