This question evaluates proficiency in binary tree traversal, explicit stack-based iterative processing, and predicate-based filtering of node values, testing data structures and algorithms knowledge within the Coding & Algorithms domain and emphasizing practical implementation skills over purely conceptual reasoning.

Given the root of a binary tree and a predicate P(value) that returns true for certain node values, return a list of lists where the i-th list contains the values at depth i that satisfy P. Implement an iterative traversal that uses a stack to manage nodes per level (no recursion). Clearly explain how you detect level boundaries, maintain per-level collections, and analyze time and space complexity.