Where did you find that (docs?) that padding need to be pre and not post?
Also, how about the Data loader note you make? I am using a data loader on the padded data and then within the forward pass of each mini batch I am pack_padding. That seems to work fine.