postgres pg_xlog explodes during set tablespace
When you move a table to a new table space and your wal_level is above "minimal", then the entire contents of the table are copied to the WAL stream.  That is why pg_xlog grows quickly.  Shrinking slowly could simply be because your archive_command can't keep up, and WAL files can't be removed until they are archived if archiving is on.  What are your settings for wal_level, archive_mode, and archive_command?