After some thought, I believe that the unadjusted p-value of the last (rank-wise) significant test after the BH-procedure comes closest to a significance threshold.
An example:
Do the BH-procedure:
Some p-values: $0.0001,0.0234,0.3354,0.0021,0.5211,0.9123,0.0008,0.0293,0.0500, 1.000$
Order them: $0.0001, 0.0008, 0.0021, 0.0234, 0.0293, 0.0500, 0.3354, 0.5211, 0.9123, 1.0000$
Compute q-values for all 10 ranks: $q_i = \frac{i}{m}\cdot \alpha$, for $i=1,2,..,m$.
Find the largest ranked p-value that is smaller than its corresponding q-value.
Results:
$$\begin{array}{}
\textbf{Rank} & \textbf{q-value} & \textbf{p-value} & \textbf{Significance (BH)} \\ \hline
1 & 0.005 & 0.0001 & True \\ \hline
2 & 0.01 & 0.0008 & True \\ \hline
3 & 0.015 & 0.0021 & True \\ \hline
4 & 0.02 & 0.0234 & False \\ \hline
5 & 0.025 & 0.0293 & False \\ \hline
6 & 0.03 & 0.05 & False \\ \hline
7 & 0.035 & 0.3354 & False \\ \hline
8 & 0.04 & 0.5211 & False \\ \hline
9 & 0.045 & 0.9123 & False \\ \hline
10 & 0.05 & 1 & False \\ \hline
\end{array}$$
On the table, we can see that all tests above Rank 3 are non-significant, thus we can conclude that 0.0021 acts as our significance threshold.
In comparison, the Bonferroni correction has a threshold of $\frac{\alpha}{m}=0.005$.
Here is the R-code I used for this example:
# generate p-values
pValues <- c(0.0001,0.0234,0.3354,0.0021,0.5211,0.9123,0.0008,0.0293,0.0500, 1)
# order the p-values
pValues <- sort(pValues)
# BH-procedure
alpha <- 0.05
m <- length(pValues)
qValues <- c()
for (i in 1:m){
qV <- (i/m)*alpha
qValues <- append(qValues, qV)
}
# find the largest p-value that satisfies p_i < q_i
BH_test <- qValues > pValues
# largest k is 3, thus threshold is 0.0021
threshold <- p[sum(BH_test)];threshold