```ts
export function netTally(sheets: string[]): string {
  const items: Map<string, { sold: number; returned: number }> = new Map();

  for (const sheet of sheets) {
    if (typeof sheet !== "string") {
      throw new Error("Each sheet must be a string.");
    }

    const lines = sheet.split("\n");
    for (const line of lines) {
      const fields = line.split("|");
      if (fields.length !== 3) {
        throw new Error("Each row must have exactly three pipe-separated fields.");
      }

      const item = fields[0].trim();
      const soldStr = fields[1].trim();
      const returnedStr = fields[2].trim();

      if (item === "") {
        throw new Error("Item name cannot be empty.");
      }

      if (!/^\d+$/.test(soldStr)) {
        throw new Error("Sold must be a string of decimal digits.");
      }
      if (!/^\d+$/.test(returnedStr)) {
        throw new Error("Returned must be a string of decimal digits.");
      }

      const sold = Number(soldStr);
      const returned = Number(returnedStr);

      if (returned > sold) {
        throw new Error("Returned cannot exceed sold for an item.");
      }

      const entry = items.get(item);
      if (entry) {
        entry.sold += sold;
        entry.returned += returned;
      } else {
        items.set(item, { sold, returned });
      }
    }
  }

  const sortedItems = Array.from(items.entries()).sort((a, b) => a[0].localeCompare(b[0]));

  if (sortedItems.length === 0) {
    return "total";
  }

  const maxNameLength = Math.max(...sortedItems.map(([name]) => name.length));
  const paddedNames = sortedItems.map(([name]) => name.padEnd(maxNameLength));
  const paddedTotal = "total".padEnd(maxNameLength);

  const lines: string[] = [];
  for (const [name, { sold, returned }] of sortedItems) {
    const net = sold - returned;
    lines.push(`${paddedNames[0]}  ${net}`);
  }
  lines.push(`${paddedTotal}  ${sortedItems.reduce((sum, [, { sold, returned }]) => sum + (sold - returned), 0)}`);

  return lines.join("\n");
}
```

**Edge-case verification:**

| Case | Behavior |
|------|-----------|
| Empty `sheets` | Returns `"total"` (trailer only, no rows) |
| Single-element sheet, no rows | Returns `"total"` |
| Single-element sheet, one valid row | Returns one report line + trailer |
| Row with empty item name | Throws Error |
| Row with non-digit sold/returned | Throws Error |
| Row with wrong field count | Throws Error |
| Sheet not a string | Throws Error |
| `returned > sold` | Throws Error |
| Duplicate items across sheets | Counts sum correctly |
| Already sorted input | Produces correct output (no-op) |
| Item names of different lengths | Padded to longest name length |
| Item names of equal length | Padded to that length (never narrower than word total) |

**Key design decisions:**
- Uses a `Map` for O(1) lookups and automatic deduplication.
- `Number(soldStr)` is used after the regex digit check to avoid floating-point precision issues (e.g., `"100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000