Can I add inputs from different accounts coming from the same Bitcoin HDWallet? Say I have 1000 users, each one with its own account with paths m/49'/0'/{user.id}', and I am controlling received/sent funds.

Could I collect all the funds (i.e. inputs) in a sole fat transaction output even though they belong to different accounts of the same HD Wallet?
Yes. Each input has its own signature with which to sign, so as long as you possess the private keys (or a master private key above the account level), you can add those inputs into any transaction you want.